app php01 790c53caa0 最后一版uniaiim 10 kuukautta sitten
..
src 790c53caa0 最后一版uniaiim 10 kuukautta sitten
CHANGELOG.md 790c53caa0 最后一版uniaiim 10 kuukautta sitten
LICENSE 790c53caa0 最后一版uniaiim 10 kuukautta sitten
README.md 790c53caa0 最后一版uniaiim 10 kuukautta sitten
package.json 790c53caa0 最后一版uniaiim 10 kuukautta sitten

README.md

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...
  }
}