You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							132 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
	
	
							132 lines
						
					
					
						
							4.0 KiB
						
					
					
				| import type {AnySchemaObject, SchemaObject, JTDParser} from "./types"
 | |
| import type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from "./types/jtd-schema"
 | |
| import AjvCore, {CurrentOptions} from "./core"
 | |
| import jtdVocabulary from "./vocabularies/jtd"
 | |
| import jtdMetaSchema from "./refs/jtd-schema"
 | |
| import compileSerializer from "./compile/jtd/serialize"
 | |
| import compileParser from "./compile/jtd/parse"
 | |
| import {SchemaEnv} from "./compile"
 | |
| 
 | |
| const META_SCHEMA_ID = "JTD-meta-schema"
 | |
| 
 | |
| type JTDOptions = CurrentOptions & {
 | |
|   // strict mode options not supported with JTD:
 | |
|   strict?: never
 | |
|   allowMatchingProperties?: never
 | |
|   allowUnionTypes?: never
 | |
|   validateFormats?: never
 | |
|   // validation and reporting options not supported with JTD:
 | |
|   $data?: never
 | |
|   verbose?: boolean
 | |
|   $comment?: never
 | |
|   formats?: never
 | |
|   loadSchema?: never
 | |
|   // options to modify validated data:
 | |
|   useDefaults?: never
 | |
|   coerceTypes?: never
 | |
|   // advanced options:
 | |
|   next?: never
 | |
|   unevaluated?: never
 | |
|   dynamicRef?: never
 | |
|   meta?: boolean
 | |
|   defaultMeta?: never
 | |
|   inlineRefs?: boolean
 | |
|   loopRequired?: never
 | |
|   multipleOfPrecision?: never
 | |
| }
 | |
| 
 | |
| class Ajv extends AjvCore {
 | |
|   constructor(opts: JTDOptions = {}) {
 | |
|     super({
 | |
|       ...opts,
 | |
|       jtd: true,
 | |
|     })
 | |
|   }
 | |
| 
 | |
|   _addVocabularies(): void {
 | |
|     super._addVocabularies()
 | |
|     this.addVocabulary(jtdVocabulary)
 | |
|   }
 | |
| 
 | |
|   _addDefaultMetaSchema(): void {
 | |
|     super._addDefaultMetaSchema()
 | |
|     if (!this.opts.meta) return
 | |
|     this.addMetaSchema(jtdMetaSchema, META_SCHEMA_ID, false)
 | |
|   }
 | |
| 
 | |
|   defaultMeta(): string | AnySchemaObject | undefined {
 | |
|     return (this.opts.defaultMeta =
 | |
|       super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))
 | |
|   }
 | |
| 
 | |
|   compileSerializer<T = unknown>(schema: SchemaObject): (data: T) => string
 | |
|   // Separated for type inference to work
 | |
|   // eslint-disable-next-line @typescript-eslint/unified-signatures
 | |
|   compileSerializer<T = unknown>(schema: JTDSchemaType<T>): (data: T) => string
 | |
|   compileSerializer<T = unknown>(schema: SchemaObject): (data: T) => string {
 | |
|     const sch = this._addSchema(schema)
 | |
|     return sch.serialize || this._compileSerializer(sch)
 | |
|   }
 | |
| 
 | |
|   compileParser<T = unknown>(schema: SchemaObject): JTDParser<T>
 | |
|   // Separated for type inference to work
 | |
|   // eslint-disable-next-line @typescript-eslint/unified-signatures
 | |
|   compileParser<T = unknown>(schema: JTDSchemaType<T>): JTDParser<T>
 | |
|   compileParser<T = unknown>(schema: SchemaObject): JTDParser<T> {
 | |
|     const sch = this._addSchema(schema)
 | |
|     return (sch.parse || this._compileParser(sch)) as JTDParser<T>
 | |
|   }
 | |
| 
 | |
|   private _compileSerializer<T>(sch: SchemaEnv): (data: T) => string {
 | |
|     compileSerializer.call(this, sch, (sch.schema as AnySchemaObject).definitions || {})
 | |
|     /* istanbul ignore if */
 | |
|     if (!sch.serialize) throw new Error("ajv implementation error")
 | |
|     return sch.serialize
 | |
|   }
 | |
| 
 | |
|   private _compileParser(sch: SchemaEnv): JTDParser {
 | |
|     compileParser.call(this, sch, (sch.schema as AnySchemaObject).definitions || {})
 | |
|     /* istanbul ignore if */
 | |
|     if (!sch.parse) throw new Error("ajv implementation error")
 | |
|     return sch.parse
 | |
|   }
 | |
| }
 | |
| 
 | |
| module.exports = exports = Ajv
 | |
| Object.defineProperty(exports, "__esModule", {value: true})
 | |
| 
 | |
| export default Ajv
 | |
| 
 | |
| export {
 | |
|   Format,
 | |
|   FormatDefinition,
 | |
|   AsyncFormatDefinition,
 | |
|   KeywordDefinition,
 | |
|   KeywordErrorDefinition,
 | |
|   CodeKeywordDefinition,
 | |
|   MacroKeywordDefinition,
 | |
|   FuncKeywordDefinition,
 | |
|   Vocabulary,
 | |
|   Schema,
 | |
|   SchemaObject,
 | |
|   AnySchemaObject,
 | |
|   AsyncSchema,
 | |
|   AnySchema,
 | |
|   ValidateFunction,
 | |
|   AsyncValidateFunction,
 | |
|   ErrorObject,
 | |
|   ErrorNoParams,
 | |
|   JTDParser,
 | |
| } from "./types"
 | |
| 
 | |
| export {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from "./core"
 | |
| export {SchemaCxt, SchemaObjCxt} from "./compile"
 | |
| export {KeywordCxt} from "./compile/validate"
 | |
| export {JTDErrorObject} from "./vocabularies/jtd"
 | |
| export {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from "./compile/codegen"
 | |
| 
 | |
| export {JTDSchemaType, SomeJTDSchemaType, JTDDataType}
 | |
| export {JTDOptions}
 | |
| export {default as ValidationError} from "./runtime/validation_error"
 | |
| export {default as MissingRefError} from "./compile/ref_error"
 |