diff --git a/README.md b/README.md index 339a43fb..996d7cfa 100644 --- a/README.md +++ b/README.md @@ -774,7 +774,7 @@ To create custom serializers and/or deserializers, define: e.g. ```javascript -serDes: [{ +serDes: [ // installs dateTime serializer and deserializer OpenApiValidator.serdes.dateTime, // installs date serializer and deserializer @@ -784,8 +784,8 @@ serDes: [{ format: 'mongo-objectid', deserialize: (s) => new ObjectID(s), serialize: (o) => o.toString(), - } -}], + }, +], ``` The mongo serializers will trigger on the following schema: diff --git a/src/framework/ajv/index.ts b/src/framework/ajv/index.ts index 75660e19..bd5a6f77 100644 --- a/src/framework/ajv/index.ts +++ b/src/framework/ajv/index.ts @@ -55,7 +55,12 @@ function createAjv( ]; return false; } - obj[propName] = sch.deserialize(data); + try { + obj[propName] = sch.deserialize(data); + } + catch(e) { + return false; + } } return true; }; @@ -99,7 +104,12 @@ function createAjv( return function validate(data, path, obj, propName) { if (typeof data === 'string') return true; if (!!sch.serialize) { - obj[propName] = sch.serialize(data); + try { + obj[propName] = sch.serialize(data); + } + catch(e) { + return false; + } } return true; };