@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
1 lines • 3.01 kB
Source Map (JSON)
{"version":3,"file":"OpenApiObjectValidator.mjs","sources":["../../../src/utils/internal/OpenApiObjectValidator.ts"],"sourcesContent":["import { OpenApi } from \"../../OpenApi\";\nimport { NamingConvention } from \"../NamingConvention\";\nimport { IOpenApiValidatorContext } from \"./IOpenApiValidatorContext\";\nimport { OpenApiStationValidator } from \"./OpenApiStationValidator\";\n\nexport namespace OpenApiObjectValidator {\n export const validate = (\n ctx: IOpenApiValidatorContext<OpenApi.IJsonSchema.IObject>,\n ): boolean => {\n if (typeof ctx.value !== \"object\" || ctx.value === null)\n return ctx.report(ctx);\n return [\n ...Object.entries(ctx.schema.properties ?? {}).map(([key, value]) =>\n OpenApiStationValidator.validate({\n ...ctx,\n schema: value,\n value: (ctx.value as Record<string, any>)[key],\n path:\n ctx.path +\n (NamingConvention.variable(key)\n ? `.${key}`\n : `[${JSON.stringify(key)}]`),\n required: ctx.schema.required?.includes(key) ?? false,\n }),\n ),\n ...(typeof ctx.schema.additionalProperties === \"object\" &&\n ctx.schema.additionalProperties !== null\n ? Object.entries(ctx.value)\n .filter(\n ([key]) =>\n Object.keys(ctx.schema.properties ?? {}).includes(key) ===\n false,\n )\n .map(([key, value]) =>\n OpenApiStationValidator.validate({\n ...ctx,\n schema: ctx.schema.additionalProperties as OpenApi.IJsonSchema,\n value,\n path:\n ctx.path +\n (NamingConvention.variable(key)\n ? `.${key}`\n : `[${JSON.stringify(key)}]`),\n required: true,\n }),\n )\n : []),\n ].every((v) => v);\n };\n}\n"],"names":["OpenApiObjectValidator","validate","ctx","value","report","Object","entries","schema","properties","map","key","OpenApiStationValidator","path","NamingConvention","variable","JSON","stringify","required","includes","additionalProperties","filter","keys","every","v"],"mappings":";;;;AAKM,IAAWA;;CAAjB,SAAiBA;IACFA,uBAAAC,WACXC;QAEA,WAAWA,IAAIC,UAAU,YAAYD,IAAIC,UAAU,MACjD,OAAOD,IAAIE,OAAOF;QACpB,OAAO,KACFG,OAAOC,QAAQJ,IAAIK,OAAOC,cAAc,CAAE,GAAEC,KAAI,EAAEC,KAAKP,WACxDQ,wBAAwBV,SAAS;eAC5BC;YACHK,QAAQJ;YACRA,OAAQD,IAAIC,MAA8BO;YAC1CE,MACEV,IAAIU,QACHC,iBAAiBC,SAASJ,OACvB,IAAIA,QACJ,IAAIK,KAAKC,UAAUN;YACzBO,UAAUf,IAAIK,OAAOU,UAAUC,SAASR,QAAQ;wBAGzCR,IAAIK,OAAOY,yBAAyB,YAC/CjB,IAAIK,OAAOY,yBAAyB,OAChCd,OAAOC,QAAQJ,IAAIC,OAChBiB,QACC,EAAEV,SACAL,OAAOgB,KAAKnB,IAAIK,OAAOC,cAAc,CAAA,GAAIU,SAASR,SAClD,QAEHD,KAAI,EAAEC,KAAKP,WACVQ,wBAAwBV,SAAS;eAC5BC;YACHK,QAAQL,IAAIK,OAAOY;YACnBhB;YACAS,MACEV,IAAIU,QACHC,iBAAiBC,SAASJ,OACvB,IAAIA,QACJ,IAAIK,KAAKC,UAAUN;YACzBO,UAAU;eAGhB,KACJK,OAAOC,KAAMA;AAAE;AAEpB,EA5CD,CAAiBvB,2BAAAA,yBA4ChB,CAAA;;"}