diff --git a/declarations/validate.d.ts b/declarations/validate.d.ts index 995c2c8..6a3a5b8 100644 --- a/declarations/validate.d.ts +++ b/declarations/validate.d.ts @@ -2,7 +2,7 @@ export default validate; export type JSONSchema4 = import('json-schema').JSONSchema4; export type JSONSchema6 = import('json-schema').JSONSchema6; export type JSONSchema7 = import('json-schema').JSONSchema7; -export type ErrorObject = Ajv.ErrorObject; +export type ErrorObject = import('ajv').ErrorObject; export type Extend = { formatMinimum?: number | undefined; formatMaximum?: number | undefined; @@ -13,8 +13,8 @@ export type Schema = | (import('json-schema').JSONSchema4 & Extend) | (import('json-schema').JSONSchema6 & Extend) | (import('json-schema').JSONSchema7 & Extend); -export type SchemaUtilErrorObject = Ajv.ErrorObject & { - children?: Ajv.ErrorObject[] | undefined; +export type SchemaUtilErrorObject = import('ajv').ErrorObject & { + children?: import('ajv').ErrorObject[] | undefined; }; export type PostFormatter = ( formattedError: string, @@ -40,5 +40,4 @@ declare namespace validate { export { ValidationError }; export { ValidationError as ValidateError }; } -import Ajv from 'ajv'; import ValidationError from './ValidationError'; diff --git a/src/validate.js b/src/validate.js index c47df13..24fb51b 100644 --- a/src/validate.js +++ b/src/validate.js @@ -1,10 +1,11 @@ -import Ajv from 'ajv'; -import ajvKeywords from 'ajv-keywords'; - import addAbsolutePathKeyword from './keywords/absolutePath'; import ValidationError from './ValidationError'; +// Use CommonJS require for ajv libs so TypeScript consumers aren't locked into esModuleInterop (see #110). +const Ajv = require('ajv'); +const ajvKeywords = require('ajv-keywords'); + /** @typedef {import("json-schema").JSONSchema4} JSONSchema4 */ /** @typedef {import("json-schema").JSONSchema6} JSONSchema6 */ /** @typedef {import("json-schema").JSONSchema7} JSONSchema7 */ diff --git a/tsconfig.json b/tsconfig.json index 59d3508..979a31e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,7 +6,6 @@ "checkJs": true, "strict": true, "types": ["node"], - "esModuleInterop": true, "resolveJsonModule": true }, "include": ["./types/**/*", "./src/**/*"]