Spaces:
Running
Running
File size: 799 Bytes
1df763a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import type Ajv from "ajv"
import type {Plugin} from "ajv"
import plugins from "./keywords"
export {AjvKeywordsError} from "./definitions"
const ajvKeywords: Plugin<string | string[]> = (ajv: Ajv, keyword?: string | string[]): Ajv => {
if (Array.isArray(keyword)) {
for (const k of keyword) get(k)(ajv)
return ajv
}
if (keyword) {
get(keyword)(ajv)
return ajv
}
for (keyword in plugins) get(keyword)(ajv)
return ajv
}
ajvKeywords.get = get
function get(keyword: string): Plugin<any> {
const defFunc = plugins[keyword]
if (!defFunc) throw new Error("Unknown keyword " + keyword)
return defFunc
}
export default ajvKeywords
module.exports = ajvKeywords
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
module.exports.default = ajvKeywords
|