1.0.1 • Public • Published


    A JSON validator and safe fallback utility for those rare times you can't trust your config.

    Love you, boy.

    🚀 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:

      "uuid": "12d31a68-66ba-4857-8263-0512bace0385",
      "branding": "Unknown column '%all%' in 'where clause'",

    Into something more like this:

      "uuid": "12d31a68-66ba-4857-8263-0512bace0385",
      "branding": {
        "backgroundColor": "firebrick",
        "title": "Default Title"

    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 } = require('jsonschema');
    const alby = require('alby');
    const validator = new Validator();
    const schema = {
      id: '/Example',
      type: 'object',
      properties: {
        text: {
          title: 'string',
      required: [
    const backup = {
      title: 'Default Title',
    const getErroneousJson = () => ({
      title: 39248,
    const {
    } = alby(
    console.log(result); // { title: 'Default Title' },
    console.log(warnings); // Lots of warnings!

    Please check out the tests for further detail.

    🙏 Dependencies

    ✌️ License



    npm i alby

    DownloadsWeekly Downloads






    Unpacked Size

    123 kB

    Total Files


    Last publish


    • cawfree