Skip to content

Commit

Permalink
fix other files
Browse files Browse the repository at this point in the history
  • Loading branch information
benasher44 committed Jan 12, 2024
1 parent a6872a5 commit 9c0c9ba
Show file tree
Hide file tree
Showing 6 changed files with 268 additions and 159 deletions.
108 changes: 71 additions & 37 deletions lib/2019.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type {AnySchemaObject} from "./types"
import AjvCore, {Options} from "./core"
import * as types from "./types"
import * as core from "./core"

import draft7Vocabularies from "./vocabularies/draft7"
import dynamicVocabulary from "./vocabularies/dynamic"
Expand All @@ -10,8 +10,8 @@ import addMetaSchema2019 from "./refs/json-schema-2019-09"

const META_SCHEMA_ID = "https://json-schema.org/draft/2019-09/schema"

class Ajv2019 extends AjvCore {
constructor(opts: Options = {}) {
class Ajv2019 extends core.Ajv {
constructor(opts: core.Options = {}) {
super({
...opts,
dynamicRef: true,
Expand All @@ -37,44 +37,78 @@ class Ajv2019 extends AjvCore {
this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID
}

defaultMeta(): string | AnySchemaObject | undefined {
defaultMeta(): string | types.AnySchemaObject | undefined {
return (this.opts.defaultMeta =
super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))
}
}

module.exports = exports = Ajv2019
Object.defineProperty(exports, "__esModule", {value: true})
export = Ajv2019;
Object.defineProperty(Ajv2019, "__esModule", {value: true})
Object.defineProperty(Ajv2019, "default", {value: Ajv2019})

export default Ajv2019
// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare
declare namespace Ajv2019 {
// compatibility with NodeNext
export { Ajv2019 as default };
}

import * as compile from "./compile"
import * as compileValidate from "./compile/validate"
import * as vocabulariesErrors from "./vocabularies/errors"
import * as compileRules from "./compile/rules"
import * as typesJsonSchema from "./types/json-schema"
import * as compileCodegen from "./compile/codegen"
import * as runtimeValidationError from "./runtime/validation_error"
import * as compileRefError from "./compile/ref_error"

// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare
namespace Ajv2019 {
/* eslint-disable @typescript-eslint/no-unused-vars */
export import Format = types.Format;
export import FormatDefinition = types.FormatDefinition;
export import AsyncFormatDefinition = types.AsyncFormatDefinition;
export import KeywordDefinition = types.KeywordDefinition;
export import KeywordErrorDefinition = types.KeywordErrorDefinition;
export import CodeKeywordDefinition = types.CodeKeywordDefinition;
export import MacroKeywordDefinition = types.MacroKeywordDefinition;
export import FuncKeywordDefinition = types.FuncKeywordDefinition;
export import Vocabulary = types.Vocabulary;
export import Schema = types.Schema;
export import SchemaObject = types.SchemaObject;
export import AnySchemaObject = types.AnySchemaObject;
export import AsyncSchema = types.AsyncSchema;
export import AnySchema = types.AnySchema;
export import ValidateFunction = types.ValidateFunction;
export import AsyncValidateFunction = types.AsyncValidateFunction;
export import ErrorObject = types.ErrorObject;
export import ErrorNoParams = types.ErrorNoParams;

export import Plugin = core.Plugin;
export import Options = core.Options;
export import CodeOptions = core.CodeOptions;
export import InstanceOptions = core.InstanceOptions;
export import Logger = core.Logger;
export import ErrorsTextOptions = core.ErrorsTextOptions;

export {
Format,
FormatDefinition,
AsyncFormatDefinition,
KeywordDefinition,
KeywordErrorDefinition,
CodeKeywordDefinition,
MacroKeywordDefinition,
FuncKeywordDefinition,
Vocabulary,
Schema,
SchemaObject,
AnySchemaObject,
AsyncSchema,
AnySchema,
ValidateFunction,
AsyncValidateFunction,
ErrorObject,
ErrorNoParams,
} from "./types"
export import SchemaCxt = compile.SchemaCxt;
export import SchemaObjCxt = compile.SchemaObjCxt;

export {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from "./core"
export {SchemaCxt, SchemaObjCxt} from "./compile"
export {KeywordCxt} from "./compile/validate"
export {DefinedError} from "./vocabularies/errors"
export {JSONType} from "./compile/rules"
export {JSONSchemaType} from "./types/json-schema"
export {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from "./compile/codegen"
export {default as ValidationError} from "./runtime/validation_error"
export {default as MissingRefError} from "./compile/ref_error"
export import KeywordCxt = compileValidate.KeywordCxt;
export import DefinedError = vocabulariesErrors.DefinedError;

export import JSONType = compileRules.JSONType
export import JSONSchemaType = typesJsonSchema.JSONSchemaType
export import _ = compileCodegen._
export import str = compileCodegen.str
export import stringify = compileCodegen.stringify
export import nil = compileCodegen.nil
export import Name = compileCodegen.Name
export import Code = compileCodegen.Code
export import CodeGen = compileCodegen.CodeGen
export import CodeGenOptions = compileCodegen.CodeGenOptions

export import ValidationError = runtimeValidationError.ValidationError
export import MissingRefError = compileRefError.MissingRefError
/* eslint-enable @typescript-eslint/no-unused-vars */
}
115 changes: 75 additions & 40 deletions lib/2020.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type {AnySchemaObject} from "./types"
import AjvCore, {Options} from "./core"
import * as types from "./types"
import * as core from "./core"

import draft2020Vocabularies from "./vocabularies/draft2020"
import discriminator from "./vocabularies/discriminator"
import addMetaSchema2020 from "./refs/json-schema-2020-12"

const META_SCHEMA_ID = "https://json-schema.org/draft/2020-12/schema"

class Ajv2020 extends AjvCore {
constructor(opts: Options = {}) {
class Ajv2020 extends core.Ajv {
constructor(opts: core.Options = {}) {
super({
...opts,
dynamicRef: true,
Expand All @@ -31,44 +31,79 @@ class Ajv2020 extends AjvCore {
this.refs["http://json-schema.org/schema"] = META_SCHEMA_ID
}

defaultMeta(): string | AnySchemaObject | undefined {
defaultMeta(): string | types.AnySchemaObject | undefined {
return (this.opts.defaultMeta =
super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))
}
}

module.exports = exports = Ajv2020
Object.defineProperty(exports, "__esModule", {value: true})

export default Ajv2020

export {
Format,
FormatDefinition,
AsyncFormatDefinition,
KeywordDefinition,
KeywordErrorDefinition,
CodeKeywordDefinition,
MacroKeywordDefinition,
FuncKeywordDefinition,
Vocabulary,
Schema,
SchemaObject,
AnySchemaObject,
AsyncSchema,
AnySchema,
ValidateFunction,
AsyncValidateFunction,
ErrorObject,
ErrorNoParams,
} from "./types"

export {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from "./core"
export {SchemaCxt, SchemaObjCxt} from "./compile"
export {KeywordCxt} from "./compile/validate"
export {DefinedError} from "./vocabularies/errors"
export {JSONType} from "./compile/rules"
export {JSONSchemaType} from "./types/json-schema"
export {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from "./compile/codegen"
export {default as ValidationError} from "./runtime/validation_error"
export {default as MissingRefError} from "./compile/ref_error"
export = Ajv2020;
Object.defineProperty(Ajv2020, "__esModule", {value: true})
Object.defineProperty(Ajv2020, "default", {value: Ajv2020})

// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare
declare namespace Ajv2020 {
// compatibility with NodeNext
export { Ajv2020 as default };
}

import * as compile from "./compile"
import * as compileValidate from "./compile/validate"
import * as vocabulariesErrors from "./vocabularies/errors"
import * as compileRules from "./compile/rules"
import * as typesJsonSchema from "./types/json-schema"
import * as compileCodegen from "./compile/codegen"
import * as runtimeValidationError from "./runtime/validation_error"
import * as compileRefError from "./compile/ref_error"


// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare
namespace Ajv2020 {
/* eslint-disable @typescript-eslint/no-unused-vars */
export import Format = types.Format;
export import FormatDefinition = types.FormatDefinition;
export import AsyncFormatDefinition = types.AsyncFormatDefinition;
export import KeywordDefinition = types.KeywordDefinition;
export import KeywordErrorDefinition = types.KeywordErrorDefinition;
export import CodeKeywordDefinition = types.CodeKeywordDefinition;
export import MacroKeywordDefinition = types.MacroKeywordDefinition;
export import FuncKeywordDefinition = types.FuncKeywordDefinition;
export import Vocabulary = types.Vocabulary;
export import Schema = types.Schema;
export import SchemaObject = types.SchemaObject;
export import AnySchemaObject = types.AnySchemaObject;
export import AsyncSchema = types.AsyncSchema;
export import AnySchema = types.AnySchema;
export import ValidateFunction = types.ValidateFunction;
export import AsyncValidateFunction = types.AsyncValidateFunction;
export import ErrorObject = types.ErrorObject;
export import ErrorNoParams = types.ErrorNoParams;

export import Plugin = core.Plugin;
export import Options = core.Options;
export import CodeOptions = core.CodeOptions;
export import InstanceOptions = core.InstanceOptions;
export import Logger = core.Logger;
export import ErrorsTextOptions = core.ErrorsTextOptions;

export import SchemaCxt = compile.SchemaCxt;
export import SchemaObjCxt = compile.SchemaObjCxt;

export import KeywordCxt = compileValidate.KeywordCxt;
export import DefinedError = vocabulariesErrors.DefinedError;

export import JSONType = compileRules.JSONType
export import JSONSchemaType = typesJsonSchema.JSONSchemaType
export import _ = compileCodegen._
export import str = compileCodegen.str
export import stringify = compileCodegen.stringify
export import nil = compileCodegen.nil
export import Name = compileCodegen.Name
export import Code = compileCodegen.Code
export import CodeGen = compileCodegen.CodeGen
export import CodeGenOptions = compileCodegen.CodeGenOptions

export import ValidationError = runtimeValidationError.ValidationError
export import MissingRefError = compileRefError.MissingRefError
/* eslint-enable @typescript-eslint/no-unused-vars */
}
2 changes: 1 addition & 1 deletion lib/ajv.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Object.defineProperty(Ajv, "default", {value: Ajv})
// eslint-disable-next-line @typescript-eslint/no-namespace, no-redeclare
declare namespace Ajv {
// compatibility with NodeNext
export {Ajv as default}
export { Ajv as default };
}

import * as types from "./types"
Expand Down
3 changes: 2 additions & 1 deletion lib/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ export interface Logger {
error(...args: unknown[]): unknown
}

export default class Ajv {
export class Ajv {
opts: InstanceOptions
errors?: ErrorObject[] | null // errors from the last validation
logger: Logger
Expand Down Expand Up @@ -748,6 +748,7 @@ export default class Ajv {
}
}

export default Ajv;
export interface ErrorsTextOptions {
separator?: string
dataVar?: string
Expand Down

0 comments on commit 9c0c9ba

Please sign in to comment.