aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts
diff options
context:
space:
mode:
authorDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 20:21:29 +0000
committerDanijel Andjelkovic <adanijel99@gmail.com>2022-03-01 20:21:29 +0000
commit61cb1570a3410c85a4489b97c172e3a50715f36c (patch)
tree8fe4a5b77ea54bba80abc817ce2c9ef0e79e7e66 /sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts
parent21a53d349788c99d2007cba91a923db982353b31 (diff)
parenta9ee9e0a500a4a15bd0b5dcaf041f827228ed309 (diff)
Merge branch 'researchML' into 'dev'
Research ml See merge request igrannonica/neuronstellar!6
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts130
1 files changed, 130 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts b/sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts
new file mode 100644
index 00000000..c0198128
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/ajv/lib/refs/jtd-schema.ts
@@ -0,0 +1,130 @@
+import {SchemaObject} from "../types"
+
+type MetaSchema = (root: boolean) => SchemaObject
+
+const shared: MetaSchema = (root) => {
+ const sch: SchemaObject = {
+ nullable: {type: "boolean"},
+ metadata: {
+ optionalProperties: {
+ union: {elements: {ref: "schema"}},
+ },
+ additionalProperties: true,
+ },
+ }
+ if (root) sch.definitions = {values: {ref: "schema"}}
+ return sch
+}
+
+const emptyForm: MetaSchema = (root) => ({
+ optionalProperties: shared(root),
+})
+
+const refForm: MetaSchema = (root) => ({
+ properties: {
+ ref: {type: "string"},
+ },
+ optionalProperties: shared(root),
+})
+
+const typeForm: MetaSchema = (root) => ({
+ properties: {
+ type: {
+ enum: [
+ "boolean",
+ "timestamp",
+ "string",
+ "float32",
+ "float64",
+ "int8",
+ "uint8",
+ "int16",
+ "uint16",
+ "int32",
+ "uint32",
+ ],
+ },
+ },
+ optionalProperties: shared(root),
+})
+
+const enumForm: MetaSchema = (root) => ({
+ properties: {
+ enum: {elements: {type: "string"}},
+ },
+ optionalProperties: shared(root),
+})
+
+const elementsForm: MetaSchema = (root) => ({
+ properties: {
+ elements: {ref: "schema"},
+ },
+ optionalProperties: shared(root),
+})
+
+const propertiesForm: MetaSchema = (root) => ({
+ properties: {
+ properties: {values: {ref: "schema"}},
+ },
+ optionalProperties: {
+ optionalProperties: {values: {ref: "schema"}},
+ additionalProperties: {type: "boolean"},
+ ...shared(root),
+ },
+})
+
+const optionalPropertiesForm: MetaSchema = (root) => ({
+ properties: {
+ optionalProperties: {values: {ref: "schema"}},
+ },
+ optionalProperties: {
+ additionalProperties: {type: "boolean"},
+ ...shared(root),
+ },
+})
+
+const discriminatorForm: MetaSchema = (root) => ({
+ properties: {
+ discriminator: {type: "string"},
+ mapping: {
+ values: {
+ metadata: {
+ union: [propertiesForm(false), optionalPropertiesForm(false)],
+ },
+ },
+ },
+ },
+ optionalProperties: shared(root),
+})
+
+const valuesForm: MetaSchema = (root) => ({
+ properties: {
+ values: {ref: "schema"},
+ },
+ optionalProperties: shared(root),
+})
+
+const schema: MetaSchema = (root) => ({
+ metadata: {
+ union: [
+ emptyForm,
+ refForm,
+ typeForm,
+ enumForm,
+ elementsForm,
+ propertiesForm,
+ optionalPropertiesForm,
+ discriminatorForm,
+ valuesForm,
+ ].map((s) => s(root)),
+ },
+})
+
+const jtdMetaSchema: SchemaObject = {
+ definitions: {
+ schema: schema(false),
+ },
+ ...schema(true),
+}
+
+export default jtdMetaSchema