app php01 790c53caa0 最后一版uniaiim 10 månader sedan
..
src 790c53caa0 最后一版uniaiim 10 månader sedan
CHANGELOG.md 790c53caa0 最后一版uniaiim 10 månader sedan
LICENSE 790c53caa0 最后一版uniaiim 10 månader sedan
README.md 790c53caa0 最后一版uniaiim 10 månader sedan
package.json 790c53caa0 最后一版uniaiim 10 månader sedan

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