1.0.0-beta.8 • Published 8 years ago

webpack-joi-schema v1.0.0-beta.8

Weekly downloads
1
License
MIT
Repository
-
Last release
8 years ago

webpack-joi-schema

travis build codecov.io

This package is deprecated, it lives on under the name webpack-validator.

Writing webpack configs is a brittle and error-prone. This package provides a joi object schema for webpack configs. This gets you a) static type safety and b) "semantic" validations such as "module.loaders.loader and module.loaders.loaders can not be used simultaneously" or "module.loaders.query can only be used with module.loaders.loader, not with module.loaders.loaders".

Note: This is a work in progress. If you like it, you're welcome to give feedback & PR's.

Usage

In your webpack.config.js:

const validate = require('webpack-joi-schema')

module.exports = validate({ /* ... your webpack config */ })

If you need to extend the schema, for example for custom top level properties or properties added by third party plugins like eslint-loader (which adds a toplevel eslint property), do it like this:

const validate = require('webpack-joi-schema')
const schema = require('webpack-joi-schema').schema

// joi is installed as dependency of this package and will be available in node_modules
// if you use npm 3. Otherwise install it explicitly.
const Joi = require('joi') 

const yourSchema = schema.concat(Joi.object({
  // this would just allow the property and doesn't perform any additional validation
  eslint: Joi.any() 
}))

const config = { /* ... your webpack config */ }

// Override default config by supplying your config as second parameter.
module.exports = validate(config, yourSchema) 

License

MIT

1.0.0-beta.8

8 years ago

1.0.0-beta.7

8 years ago

1.0.0-beta.6

8 years ago

1.0.0-beta.5

8 years ago

1.0.0-beta.4

8 years ago

1.0.0-beta.3

8 years ago

1.0.0-beta.2

8 years ago

1.0.0-beta.1

8 years ago