schema-utils
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    npm node deps test coverage chat

    Schema Utils

    Install

    npm i schema-utils

    Usage

    validateOptions

    schema.json

    {
      "type": "object",
      "properties": {
        // Options...
      },
      "additionalProperties": false
    }

    Error Messages (Custom)

    schema.json

    {
      "type": "object",
      "properties": {
        "option": {
          "type": [ "boolean" ]
        }
      },
      // Overrides the default err.message for option
      "errorMessage": {
        "option": "should be {Boolean} (https:/github.com/org/repo#anchor)"
      }
      "additionalProperties": false
    }
    import schema from 'path/to/schema.json'
    import validateOptions from 'schema-utils'
     
    validateOptions(schema, options, 'Loader/Plugin Name')

    Examples

    schema.json

    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "test": {
          "anyOf": [
            { "type": "array" },
            { "type": "string" },
            { "instanceof": "RegExp" }
          ]
        },
        "transform": {
          "instanceof": "Function"
        },
        "sourceMap": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }

    Loader

    import { getOptions } from 'loader-utils'
    import validateOptions from 'schema-utils'
     
    import schema from 'path/to/schema.json'
     
    function loader (src, map) {
      const options = getOptions(this) || {}
     
      validateOptions(schema, options, 'Loader Name')
     
      // Code...
    }

    Plugin

    import validateOptions from 'schema-utils'
     
    import schema from 'path/to/schema.json'
     
    class Plugin {
      constructor (options) {
        validateOptions(schema, options, 'Plugin Name')
     
        this.options = options
      }
     
      apply (compiler) {
        // Code...
      }
    }

    Keywords

    Install

    npm i schema-utils@1.0.0

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    11.5 kB

    Total Files

    7

    Last publish

    Collaborators

    • sokra
    • evilebottnawi