Server IP : 150.95.80.236 / Your IP : 18.226.163.167 Web Server : Apache System : Linux host-150-95-80-236 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : social-telecare ( 10000) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/pcu.in.th/api-uat.pcu.in.th/node_modules/ajv/lib/refs/ |
Upload File : |
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