aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@webpack-contrib/schema-utils/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@webpack-contrib/schema-utils/README.md')
-rw-r--r--node_modules/@webpack-contrib/schema-utils/README.md213
1 files changed, 213 insertions, 0 deletions
diff --git a/node_modules/@webpack-contrib/schema-utils/README.md b/node_modules/@webpack-contrib/schema-utils/README.md
new file mode 100644
index 00000000..b4245958
--- /dev/null
+++ b/node_modules/@webpack-contrib/schema-utils/README.md
@@ -0,0 +1,213 @@
+<div align="center">
+ <a href="http://json-schema.org">
+ <img width="200"
+ src="https://cdn.rawgit.com/webpack-contrib/schema-utils/master/.github/json-schema-logo.svg">
+ </a>
+ <a href="https://github.com/webpack/webpack">
+ <img width="200" src="https://webpack.js.org/assets/icon-square-big.svg">
+ </a>
+</div>
+
+[![npm][npm]][npm-url]
+[![node][node]][node-url]
+[![deps][deps]][deps-url]
+[![tests][tests]][tests-url]
+[![chat][chat]][chat-url]
+
+# schema-utils
+
+Webpack Schema Validation Utilities
+
+Validates `options` objects against a [JSON Schema](http://json-schema.org) and
+displays the output beautifully.
+
+<img width="645"
+ src="https://cdn.rawgit.com/webpack-contrib/schema-utils/master/.github/pretty.png">
+
+## Requirements
+
+This module requires a minimum of Node v6.9.0 and Webpack v4.0.0.
+
+## Getting Started
+
+To begin, you'll need to install `schema-utils`:
+
+```console
+$ npm install @webpack-contrib/schema-utils --save-dev
+```
+
+## API
+
+When using the API directly, the main entry point is the `serve` function, which
+is the default export of the module.
+
+```js
+const validate = require('@webpack-contrib/schema-utils');
+const schema = require('path/to/schema.json');
+const target = { ... }; // the options object to validate
+const name = '...'; // the load or plugin name validate() is being used in
+
+validate({ name, schema, target });
+```
+
+### serve(options)
+
+Returns `true` if validation succeeded, `false` validation failed and options
+allow the function to return a value. (see options below).
+
+### options
+
+Type: `Object`
+
+Options for initializing and controlling the server provided. The option names
+listed below belong to the `options` object.
+
+#### `exit`
+
+Type: `Boolean`
+Default: `false`
+
+If `true`, will instruct the validator to end the process with an error code of
+`1`.
+
+#### `log`
+
+Type: `Boolean`
+Default: `false`
+
+If `true`, will instruct the validator to log the results of the validation (in
+the event of a failure) in a
+[webpack-style log output](https://github.com/webpack-contrib/webpack-log). This
+is typically used with `throw: false`.
+
+<img width="500"
+ src="https://cdn.rawgit.com/webpack-contrib/schema-utils/master/.github/output-log-true.png">
+
+#### `name`
+
+Type: `String`
+Default: `undefined`
+_**Required**_
+
+A `String` specifying the name of the loader or plugin utilizing the validator.
+
+#### `schema`
+
+Type: `String|Object`
+Default: `undefined`
+_**Required**_
+
+A `String` specifying the filesystem path to the schema used for validation.
+Alternatively, you may specify an `object` containing the JSON-parsed schema.
+
+#### `target`
+
+Type: `Object`
+Default: `undefined`
+_**Required**_
+
+An `Object` containing the options to validate against the specified schema.
+
+#### `throw`
+
+Type: `Boolean`
+Default: `true`
+
+By default the validator will throw an error and display validation results upon
+failure. If this option is set to `false`, the validator will not throw an error.
+This is typically used in situations where a return value of `false` for
+`validate()` is sufficient, a stack trace is uneeded, or when
+[webpack-style log output](https://github.com/webpack-contrib/webpack-log) is
+preferred.
+
+<img width="645"
+ src="https://cdn.rawgit.com/webpack-contrib/schema-utils/master/.github/output-throws-true.png">
+
+
+## Examples
+
+Below is a basic example of how this validator might be used:
+
+```json
+# schema.json
+{
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "test": {
+ "anyOf": [
+ { "type": "array" },
+ { "type": "string" },
+ { "instanceof": "RegExp" }
+ ]
+ },
+ "transform": {
+ "instanceof": "Function"
+ },
+ "sourceMap": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false
+}
+```
+
+### Use in a Loader
+
+```js
+const { getOptions } = require('loader-utils');
+const validate = require('@webpack-contrib/schema-utils');
+
+import schema from 'path/to/schema.json'
+
+function loader (src, map) {
+ const options = getOptions(this) || {};
+
+ validate({ name: 'Loader Name', schema, target: options });
+
+ // Code...
+}
+```
+
+### Use in a Plugin
+
+```js
+const validate = require('@webpack-contrib/schema-utils');
+const schema = require('path/to/schema.json');
+
+class Plugin {
+ constructor (options) {
+ validate({ name: 'Plugin Name', schema, target: options });
+
+ this.options = options;
+ }
+
+ apply (compiler) {
+ // Code...
+ }
+}
+```
+
+## License
+
+#### [MIT](./LICENSE)
+
+[npm]: https://img.shields.io/npm/v/schema-utils.svg
+[npm-url]: https://npmjs.com/package/schema-utils
+
+[node]: https://img.shields.io/node/v/schema-utils.svg
+[node-url]: https://nodejs.org
+
+[deps]: https://david-dm.org/webpack-contrib/schema-utils.svg
+[deps-url]: https://david-dm.org/webpack-contrib/schema-utils
+
+[tests]: https://img.shields.io/circleci/project/github/webpack-contrib/schema-utils.svg
+[tests-url]: https://circleci.com/gh/webpack-contrib/schema-utils
+
+[cover]: https://codecov.io/gh/webpack-contrib/schema-utils/branch/master/graph/badge.svg
+[cover-url]: https://codecov.io/gh/webpack-contrib/schema-utils
+
+[chat]: https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg
+[chat-url]: https://gitter.im/webpack/webpack \ No newline at end of file