UNPKG

@strapi/utils

Version:

Shared utilities for the Strapi packages

1 lines 2.93 kB
{"version":3,"file":"validators.mjs","sources":["../src/validators.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-template-curly-in-string */\nimport * as yup from 'yup';\nimport { defaults } from 'lodash/fp';\nimport { YupValidationError } from './errors';\n\nconst handleYupError = (error: yup.ValidationError, errorMessage?: string) => {\n throw new YupValidationError(error, errorMessage);\n};\n\nconst defaultValidationParam = { strict: true, abortEarly: false };\n\nconst validateYupSchema =\n <TSchema extends yup.AnySchema>(schema: TSchema, options = {}) =>\n async (body: unknown, errorMessage?: string): Promise<yup.InferType<TSchema>> => {\n try {\n const optionsWithDefaults = defaults(defaultValidationParam, options);\n const result = await schema.validate(body, optionsWithDefaults);\n return result;\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n handleYupError(e, errorMessage);\n }\n\n throw e;\n }\n };\n\nconst validateYupSchemaSync =\n <TSchema extends yup.AnySchema>(schema: yup.AnySchema, options = {}) =>\n (body: unknown, errorMessage?: string): yup.InferType<TSchema> => {\n try {\n const optionsWithDefaults = defaults(defaultValidationParam, options);\n return schema.validateSync(body, optionsWithDefaults);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n handleYupError(e, errorMessage);\n }\n\n throw e;\n }\n };\n\nexport { handleYupError, validateYupSchema, validateYupSchemaSync };\n"],"names":["handleYupError","error","errorMessage","YupValidationError","defaultValidationParam","strict","abortEarly","validateYupSchema","schema","options","body","optionsWithDefaults","defaults","result","validate","e","yup","ValidationError","validateYupSchemaSync","validateSync"],"mappings":";;;;AAMA,MAAMA,cAAAA,GAAiB,CAACC,KAAAA,EAA4BC,YAAAA,GAAAA;IAClD,MAAM,IAAIC,mBAAmBF,KAAAA,EAAOC,YAAAA,CAAAA;AACtC;AAEA,MAAME,sBAAAA,GAAyB;IAAEC,MAAAA,EAAQ,IAAA;IAAMC,UAAAA,EAAY;AAAM,CAAA;AAEjE,MAAMC,iBAAAA,GACJ,CAAgCC,MAAAA,EAAiBC,OAAAA,GAAU,EAAE,GAC7D,OAAOC,IAAAA,EAAeR,YAAAA,GAAAA;QACpB,IAAI;YACF,MAAMS,mBAAAA,GAAsBC,SAASR,sBAAAA,EAAwBK,OAAAA,CAAAA;AAC7D,YAAA,MAAMI,MAAAA,GAAS,MAAML,MAAAA,CAAOM,QAAQ,CAACJ,IAAAA,EAAMC,mBAAAA,CAAAA;YAC3C,OAAOE,MAAAA;AACT,QAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;YACV,IAAIA,CAAAA,YAAaC,GAAAA,CAAIC,eAAe,EAAE;AACpCjB,gBAAAA,cAAAA,CAAee,CAAAA,EAAGb,YAAAA,CAAAA;AACpB,YAAA;YAEA,MAAMa,CAAAA;AACR,QAAA;AACF,IAAA;AAEF,MAAMG,qBAAAA,GACJ,CAAgCV,MAAAA,EAAuBC,OAAAA,GAAU,EAAE,GACnE,CAACC,IAAAA,EAAeR,YAAAA,GAAAA;QACd,IAAI;YACF,MAAMS,mBAAAA,GAAsBC,SAASR,sBAAAA,EAAwBK,OAAAA,CAAAA;YAC7D,OAAOD,MAAAA,CAAOW,YAAY,CAACT,IAAAA,EAAMC,mBAAAA,CAAAA;AACnC,QAAA,CAAA,CAAE,OAAOI,CAAAA,EAAG;YACV,IAAIA,CAAAA,YAAaC,GAAAA,CAAIC,eAAe,EAAE;AACpCjB,gBAAAA,cAAAA,CAAee,CAAAA,EAAGb,YAAAA,CAAAA;AACpB,YAAA;YAEA,MAAMa,CAAAA;AACR,QAAA;AACF,IAAA;;;;"}