@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
1 lines • 5.95 kB
Source Map (JSON)
{"version":3,"file":"OpenApiStationValidator.mjs","sources":["../../../src/utils/internal/OpenApiStationValidator.ts"],"sourcesContent":["import { OpenApi } from \"../../OpenApi\";\nimport { OpenApiTypeChecker } from \"../OpenApiTypeChecker\";\nimport { IOpenApiValidatorContext } from \"./IOpenApiValidatorContext\";\nimport { OpenApiArrayValidator } from \"./OpenApiArrayValidator\";\nimport { OpenApiBooleanValidator } from \"./OpenApiBooleanValidator\";\nimport { OpenApiConstantValidator } from \"./OpenApiConstantValidator\";\nimport { OpenApiIntegerValidator } from \"./OpenApiIntegerValidator\";\nimport { OpenApiNumberValidator } from \"./OpenApiNumberValidator\";\nimport { OpenApiObjectValidator } from \"./OpenApiObjectValidator\";\nimport { OpenApiOneOfValidator } from \"./OpenApiOneOfValidator\";\nimport { OpenApiSchemaNamingRule } from \"./OpenApiSchemaNamingRule\";\nimport { OpenApiStringValidator } from \"./OpenApiStringValidator\";\nimport { OpenApiTupleValidator } from \"./OpenApiTupleValidator\";\n\nexport namespace OpenApiStationValidator {\n export const validate = (\n ctx: Omit<IOpenApiValidatorContext<OpenApi.IJsonSchema>, \"expected\">,\n expected?: string,\n ): boolean => {\n // THE TYPE NAME\n expected ??= (() => {\n const name = OpenApiSchemaNamingRule.getName(ctx.schema);\n return ctx.required ? name : `${name} | undefined`;\n })();\n\n // COALESCE\n if (OpenApiTypeChecker.isUnknown(ctx.schema)) return true;\n else if (ctx.value === undefined)\n return (\n ctx.required === false ||\n ctx.report({\n ...ctx,\n expected,\n })\n );\n else if (OpenApiTypeChecker.isNull(ctx.schema))\n return (\n ctx.value === null ||\n ctx.report({\n ...ctx,\n expected,\n })\n );\n // NESTED\n else if (OpenApiTypeChecker.isReference(ctx.schema)) {\n const schema: OpenApi.IJsonSchema | undefined =\n ctx.components.schemas?.[ctx.schema.$ref.split(\"/\").pop() ?? \"\"];\n if (schema === undefined) return true;\n return OpenApiStationValidator.validate(\n {\n ...ctx,\n schema,\n },\n expected,\n );\n } else if (OpenApiTypeChecker.isOneOf(ctx.schema))\n return OpenApiOneOfValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n // ATOMICS\n else if (OpenApiTypeChecker.isConstant(ctx.schema))\n return OpenApiConstantValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isBoolean(ctx.schema))\n return OpenApiBooleanValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isInteger(ctx.schema))\n return OpenApiIntegerValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isNumber(ctx.schema))\n return OpenApiNumberValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isString(ctx.schema))\n return OpenApiStringValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n // INSTANCES\n else if (OpenApiTypeChecker.isArray(ctx.schema))\n return OpenApiArrayValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isTuple(ctx.schema))\n return OpenApiTupleValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n else if (OpenApiTypeChecker.isObject(ctx.schema))\n return OpenApiObjectValidator.validate({\n ...ctx,\n schema: ctx.schema,\n expected,\n });\n return true;\n };\n}\n"],"names":["OpenApiStationValidator","validate","ctx","expected","name","OpenApiSchemaNamingRule","getName","schema","required","OpenApiTypeChecker","isUnknown","value","undefined","report","isNull","isReference","components","schemas","$ref","split","pop","isOneOf","OpenApiOneOfValidator","isConstant","OpenApiConstantValidator","isBoolean","OpenApiBooleanValidator","isInteger","OpenApiIntegerValidator","isNumber","OpenApiNumberValidator","isString","OpenApiStringValidator","isArray","OpenApiArrayValidator","isTuple","OpenApiTupleValidator","isObject","OpenApiObjectValidator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcM,IAAWA;;CAAjB,SAAiBA;IACFA,wBAAAC,WAAW,CACtBC,KACAC;QAGAA,aAAAA,WAAa;YACX,MAAMC,OAAOC,wBAAwBC,QAAQJ,IAAIK;YACjD,OAAOL,IAAIM,WAAWJ,OAAO,GAAGA;AACjC,UAHY;QAMb,IAAIK,mBAAmBC,UAAUR,IAAIK,SAAS,OAAO,WAChD,IAAIL,IAAIS,UAAUC,WACrB,OACEV,IAAIM,aAAa,SACjBN,IAAIW,OAAO;eACNX;YACHC;iBAGD,IAAIM,mBAAmBK,OAAOZ,IAAIK,SACrC,OACEL,IAAIS,UAAU,QACdT,IAAIW,OAAO;eACNX;YACHC;iBAID,IAAIM,mBAAmBM,YAAYb,IAAIK,SAAS;YACnD,MAAMA,SACJL,IAAIc,WAAWC,UAAUf,IAAIK,OAAOW,KAAKC,MAAM,KAAKC,SAAS;YAC/D,IAAIb,WAAWK,WAAW,OAAO;YACjC,OAAOZ,wBAAwBC,SAC7B;mBACKC;gBACHK;eAEFJ;eAEG,IAAIM,mBAAmBY,QAAQnB,IAAIK,SACxC,OAAOe,sBAAsBrB,SAAS;eACjCC;YACHK,QAAQL,IAAIK;YACZJ;iBAGC,IAAIM,mBAAmBc,WAAWrB,IAAIK,SACzC,OAAOiB,yBAAyBvB,SAAS;eACpCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmBgB,UAAUvB,IAAIK,SACxC,OAAOmB,wBAAwBzB,SAAS;eACnCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmBkB,UAAUzB,IAAIK,SACxC,OAAOqB,wBAAwB3B,SAAS;eACnCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmBoB,SAAS3B,IAAIK,SACvC,OAAOuB,uBAAuB7B,SAAS;eAClCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmBsB,SAAS7B,IAAIK,SACvC,OAAOyB,uBAAuB/B,SAAS;eAClCC;YACHK,QAAQL,IAAIK;YACZJ;iBAGC,IAAIM,mBAAmBwB,QAAQ/B,IAAIK,SACtC,OAAO2B,sBAAsBjC,SAAS;eACjCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmB0B,QAAQjC,IAAIK,SACtC,OAAO6B,sBAAsBnC,SAAS;eACjCC;YACHK,QAAQL,IAAIK;YACZJ;iBAEC,IAAIM,mBAAmB4B,SAASnC,IAAIK,SACvC,OAAO+B,uBAAuBrC,SAAS;eAClCC;YACHK,QAAQL,IAAIK;YACZJ;;QAEJ,OAAO;AAAI;AAEd,EAnGD,CAAiBH,4BAAAA,0BAmGhB,CAAA;;"}