alby
A JSON validator and safe fallback utility for those rare times you can't trust your config.
🚀 Getting Started
Using npm:
npm install --save alby
Using yarn:
yarn add alby
⚠️ Warning
It is not recommended at this time suitable to use alby for sanitizing JSON which describes any complex relationships or references between data sources, as these will be malformed.
🤔 How does it work?
jsonschema
is a proven tool for defining the expected structure, types and formatting of a particular JSON objects by declaring a corresponding schema. Unfortunately in practice, just defining the schema does not make it so. Poor form validation, developer errors or short-sighted data manipulation all conspire against the frontend developer. This can be particularly common case when third-partys are permitted to bulk datasets to your database. (See: Murphy's Law).
alby builds upon jsonschema
by taking its analysis results and in case of error, reverting these back to a safe default value.
In effect, it turns responses like this:
Into something more like this:
Meanwhile, the actual errors from the failed response are still retained. This helps keep your frontend app working in production at a sensible default configuration, whilst you can fire off the failures using an analytics service.
✍️ Example
const Validator = ;const alby = ; const validator = ; const schema = id: '/Example' type: 'object' properties: text: title: 'string' required: 'title' ; const backup = title: 'Default Title'; validator; const getErroneousJson = title: 39248; const result warnings = ;console; // { title: 'Default Title' },console; // Lots of warnings!
Please check out the tests for further detail.