aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts99
1 files changed, 0 insertions, 99 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts b/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts
deleted file mode 100644
index bf6a57cb..00000000
--- a/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/limit.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import type Ajv from "ajv"
-import type {
- Plugin,
- CodeKeywordDefinition,
- KeywordErrorDefinition,
- Code,
- Name,
- ErrorObject,
-} from "ajv"
-import type {AddedFormat} from "ajv/dist/types"
-import type {Rule} from "ajv/dist/compile/rules"
-import {KeywordCxt} from "ajv"
-import {_, str, or, getProperty, operators} from "ajv/dist/compile/codegen"
-
-type Kwd = "formatMaximum" | "formatMinimum" | "formatExclusiveMaximum" | "formatExclusiveMinimum"
-
-type Comparison = "<=" | ">=" | "<" | ">"
-
-const ops = operators
-
-const KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {
- formatMaximum: {okStr: "<=", ok: ops.LTE, fail: ops.GT},
- formatMinimum: {okStr: ">=", ok: ops.GTE, fail: ops.LT},
- formatExclusiveMaximum: {okStr: "<", ok: ops.LT, fail: ops.GTE},
- formatExclusiveMinimum: {okStr: ">", ok: ops.GT, fail: ops.LTE},
-}
-
-export type LimitFormatError = ErrorObject<Kwd, {limit: string; comparison: Comparison}>
-
-const error: KeywordErrorDefinition = {
- message: ({keyword, schemaCode}) => str`should be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,
- params: ({keyword, schemaCode}) =>
- _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,
-}
-
-export const formatLimitDefinition: CodeKeywordDefinition = {
- keyword: Object.keys(KWDs),
- type: "string",
- schemaType: "string",
- $data: true,
- error,
- code(cxt) {
- const {gen, data, schemaCode, keyword, it} = cxt
- const {opts, self} = it
- if (!opts.validateFormats) return
-
- const fCxt = new KeywordCxt(it, (self.RULES.all.format as Rule).definition, "format")
- if (fCxt.$data) validate$DataFormat()
- else validateFormat()
-
- function validate$DataFormat(): void {
- const fmts = gen.scopeValue("formats", {
- ref: self.formats,
- code: opts.code.formats,
- })
- const fmt = gen.const("fmt", _`${fmts}[${fCxt.schemaCode}]`)
- cxt.fail$data(
- or(
- _`typeof ${fmt} != "object"`,
- _`${fmt} instanceof RegExp`,
- _`typeof ${fmt}.compare != "function"`,
- compareCode(fmt)
- )
- )
- }
-
- function validateFormat(): void {
- const format = fCxt.schema as string
- const fmtDef: AddedFormat | undefined = self.formats[format]
- if (!fmtDef || fmtDef === true) return
- if (
- typeof fmtDef != "object" ||
- fmtDef instanceof RegExp ||
- typeof fmtDef.compare != "function"
- ) {
- throw new Error(`"${keyword}": format "${format}" does not define "compare" function`)
- }
- const fmt = gen.scopeValue("formats", {
- key: format,
- ref: fmtDef,
- code: opts.code.formats ? _`${opts.code.formats}${getProperty(format)}` : undefined,
- })
-
- cxt.fail$data(compareCode(fmt))
- }
-
- function compareCode(fmt: Name): Code {
- return _`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword as Kwd].fail} 0`
- }
- },
- dependencies: ["format"],
-}
-
-const formatLimitPlugin: Plugin<undefined> = (ajv: Ajv): Ajv => {
- ajv.addKeyword(formatLimitDefinition)
- return ajv
-}
-
-export default formatLimitPlugin