@samchon/openapi
Version:
OpenAPI definitions and converters for 'typia' and 'nestia'.
1 lines • 2.78 kB
Source Map (JSON)
{"version":3,"file":"OpenApiValidator.mjs","sources":["../../src/utils/OpenApiValidator.ts"],"sourcesContent":["import { OpenApi } from \"../OpenApi\";\nimport { IValidation } from \"../structures/IValidation\";\nimport { OpenApiStationValidator } from \"./internal/OpenApiStationValidator\";\n\nexport namespace OpenApiValidator {\n export const create =\n (prop: {\n components: OpenApi.IComponents;\n schema: OpenApi.IJsonSchema;\n required: boolean;\n }) =>\n (value: unknown): IValidation<unknown> =>\n validate({ ...prop, value });\n\n export const validate = (props: {\n components: OpenApi.IComponents;\n schema: OpenApi.IJsonSchema;\n value: unknown;\n required: boolean;\n }): IValidation<unknown> => {\n const errors: IValidation.IError[] = [];\n OpenApiStationValidator.validate({\n ...props,\n path: \"$input\",\n exceptionable: true,\n report: createReporter(errors),\n });\n return errors.length === 0\n ? {\n success: true,\n data: props.value,\n }\n : {\n success: false,\n data: props.value,\n errors,\n };\n };\n\n const createReporter = (array: IValidation.IError[]) => {\n const reportable = (path: string): boolean => {\n if (array.length === 0) return true;\n const last: string = array[array.length - 1]!.path;\n return (\n path.length > last.length || last.substring(0, path.length) !== path\n );\n };\n return (\n error: IValidation.IError & {\n exceptionable: boolean;\n },\n ): false => {\n if (error.exceptionable && reportable(error.path))\n array.push({\n path: error.path,\n expected: error.expected,\n value: error.value,\n });\n return false;\n };\n };\n}\n"],"names":["OpenApiValidator","create","prop","value","validate","props","errors","OpenApiStationValidator","path","exceptionable","report","createReporter","length","success","data","array","reportable","last","substring","error","push","expected"],"mappings":";;AAIM,IAAWA;;CAAjB,SAAiBA;IACFA,iBAAMC,SAChBC,QAKAC,SACCH,iBAAAI,SAAS;WAAKF;QAAMC;;IAEXH,iBAAAI,WAAYC;QAMvB,MAAMC,SAA+B;QACrCC,wBAAwBH,SAAS;eAC5BC;YACHG,MAAM;YACNC,eAAe;YACfC,QAAQC,eAAeL;;QAEzB,OAAOA,OAAOM,WAAW,IACrB;YACEC,SAAS;YACTC,MAAMT,MAAMF;YAEd;YACEU,SAAS;YACTC,MAAMT,MAAMF;YACZG;;AACD;IAGP,MAAMK,iBAAkBI;QACtB,MAAMC,aAAcR;YAClB,IAAIO,MAAMH,WAAW,GAAG,OAAO;YAC/B,MAAMK,OAAeF,MAAMA,MAAMH,SAAS,GAAIJ;YAC9C,OACEA,KAAKI,SAASK,KAAKL,UAAUK,KAAKC,UAAU,GAAGV,KAAKI,YAAYJ;AAAI;QAGxE,OACEW;YAIA,IAAIA,MAAMV,iBAAiBO,WAAWG,MAAMX,OAC1CO,MAAMK,KAAK;gBACTZ,MAAMW,MAAMX;gBACZa,UAAUF,MAAME;gBAChBlB,OAAOgB,MAAMhB;;YAEjB,OAAO;AAAK;AACb;AAEJ,EAzDD,CAAiBH,qBAAAA,mBAyDhB,CAAA;;"}