"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const CONSTRUCTORS = { Object, Array, Function, Number, String, Date, RegExp, }; /* istanbul ignore else */ if (typeof Buffer != "undefined") CONSTRUCTORS.Buffer = Buffer; /* istanbul ignore else */ if (typeof Promise != "undefined") CONSTRUCTORS.Promise = Promise; const getDef = Object.assign(_getDef, { CONSTRUCTORS }); function _getDef() { return { keyword: "instanceof", schemaType: ["string", "array"], compile(schema) { if (typeof schema == "string") { const C = getConstructor(schema); return (data) => data instanceof C; } if (Array.isArray(schema)) { const constructors = schema.map(getConstructor); return (data) => { for (const C of constructors) { if (data instanceof C) return true; } return false; }; } /* istanbul ignore next */ throw new Error("ajv implementation error"); }, metaSchema: { anyOf: [{ type: "string" }, { type: "array", items: { type: "string" } }], }, }; } function getConstructor(c) { const C = CONSTRUCTORS[c]; if (C) return C; throw new Error(`invalid "instanceof" keyword value ${c}`); } exports.default = getDef; module.exports = getDef; //# sourceMappingURL=instanceof.js.map