Loading dependencies and including them into express shouldn't be hard. Sometimes you need a clean and powerful interface like the one provide by the glob package to do the job.
That's why express-wizard exists.
You can get it on npm.
$ npm install express-wizard --save
// or
$ yarn add express-wizard
var Wizard = require('express-wizard');
var instance = new Wizard()
.inject('model/**/*.js')
.inject(['controller/**/*.js', 'service/**/*.js'])
.inject('stop.js')
.exclude('middleware/**/*.js')
.exclude('start.js')
.into(app);
// app.model.foo
// app.model.bar
// app.controller.foo
// app.controller.bar
// app.service.foo
// app.service.bar
// app.stop
new Wizard({
cwd: process.cwd(),
logger: console,
verbose: true,
loggingType: 'info',
defaultExclusion: []
});
logger
- Defaults to console, this can be switched out.
verbose
- On by default, set to false
for no logging
loggingType
- Set the type of logging, defaults to info
Wizard will simply use a relative path from your current working directory, however sometimes you don't want heavily nested files included in the object chain, so you can set the cwd:
new Wizard()
.include('project/model/**/*.js') // ./project/model/foo.js
.into(app);
would result in:
app.project.model.foo
so using the cwd
option:
new Wizard({cwd: 'project'})
.include('model/**/*.js') // ./project/model/foo.js
.into(app);
would give us:
app.model.foo
Until wizard reaches a 1.0
release, breaking changes will be released with a new minor version. For example 0.6.1
, and 0.6.4
will have the same API, but 0.7.0
will have breaking changes.
To run the test suite, first install the dependencies, then run npm test
:
$ npm install
or
$ yarn install
$ npm test
MIT License © Ivan Santos