https://github.com/pragmaticivan/wizard
🎩 Autoload your express/object dependencies using the power of glob.
https://github.com/pragmaticivan/wizard
autoload express glob nodejs wizard
Last synced: about 1 year ago
JSON representation
🎩 Autoload your express/object dependencies using the power of glob.
- Host: GitHub
- URL: https://github.com/pragmaticivan/wizard
- Owner: pragmaticivan
- Created: 2017-01-23T21:48:20.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-22T19:26:51.000Z (over 9 years ago)
- Last Synced: 2024-05-02T06:06:58.069Z (about 2 years ago)
- Topics: autoload, express, glob, nodejs, wizard
- Language: JavaScript
- Homepage:
- Size: 123 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: contributing.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
wizard
Fast, flexible autoload for express dependencies using the power of glob.
## Why
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.
## Install
You can get it on npm.
```bash
$ npm install express-wizard --save
// or
$ yarn add express-wizard
```
## Usage
```js
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
```
## Options
#### Defaults
```js
new Wizard({
cwd: process.cwd(),
logger: console,
verbose: true,
loggingType: 'info',
defaultExclusion: []
});
```
### Logging
`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`
### Base Directory (cwd)
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:
```js
new Wizard()
.include('project/model/**/*.js') // ./project/model/foo.js
.into(app);
```
would result in:
```js
app.project.model.foo
```
so using the `cwd` option:
```js
new Wizard({cwd: 'project'})
.include('model/**/*.js') // ./project/model/foo.js
.into(app);
```
would give us:
```js
app.model.foo
```
## Semver
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.
## Tests
To run the test suite, first install the dependencies, then run `npm test`:
```bash
$ npm install
or
$ yarn install
$ npm test
```
## Resources
* [Changelog](https://github.com/pragmaticivan/wizard/blob/master/CHANGELOG.md)
* [Contributing Guide](https://github.com/pragmaticivan/wizard/blob/master/CONTRIBUTING.md)
* [Code of Conduct](https://github.com/pragmaticivan/wizard/blob/master/CODE_OF_CONDUCT.md)
## License
[MIT License](http://pragmaticivan.mit-license.org/) © Ivan Santos