aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts62
1 files changed, 62 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts b/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts
new file mode 100644
index 00000000..8fd944a0
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/ajv-formats/src/index.ts
@@ -0,0 +1,62 @@
+import {
+ DefinedFormats,
+ FormatMode,
+ FormatName,
+ formatNames,
+ fastFormats,
+ fullFormats,
+} from "./formats"
+import formatLimit from "./limit"
+import type Ajv from "ajv"
+import type {Plugin, Format} from "ajv"
+import {_, Name} from "ajv/dist/compile/codegen"
+
+export {FormatMode, FormatName} from "./formats"
+export {LimitFormatError} from "./limit"
+export interface FormatOptions {
+ mode?: FormatMode
+ formats?: FormatName[]
+ keywords?: boolean
+}
+
+export type FormatsPluginOptions = FormatName[] | FormatOptions
+
+export interface FormatsPlugin extends Plugin<FormatsPluginOptions> {
+ get: (format: FormatName, mode?: FormatMode) => Format
+}
+
+const fullName = new Name("fullFormats")
+const fastName = new Name("fastFormats")
+
+const formatsPlugin: FormatsPlugin = (
+ ajv: Ajv,
+ opts: FormatsPluginOptions = {keywords: true}
+): Ajv => {
+ if (Array.isArray(opts)) {
+ addFormats(ajv, opts, fullFormats, fullName)
+ return ajv
+ }
+ const [formats, exportName] =
+ opts.mode === "fast" ? [fastFormats, fastName] : [fullFormats, fullName]
+ const list = opts.formats || formatNames
+ addFormats(ajv, list, formats, exportName)
+ if (opts.keywords) formatLimit(ajv)
+ return ajv
+}
+
+formatsPlugin.get = (name: FormatName, mode: FormatMode = "full"): Format => {
+ const formats = mode === "fast" ? fastFormats : fullFormats
+ const f = formats[name]
+ if (!f) throw new Error(`Unknown format "${name}"`)
+ return f
+}
+
+function addFormats(ajv: Ajv, list: FormatName[], fs: DefinedFormats, exportName: Name): void {
+ ajv.opts.code.formats ??= _`require("ajv-formats/dist/formats").${exportName}`
+ for (const f of list) ajv.addFormat(f, fs[f])
+}
+
+module.exports = exports = formatsPlugin
+Object.defineProperty(exports, "__esModule", {value: true})
+
+export default formatsPlugin