{"id":20081835,"url":"https://github.com/pragmaticivan/wizard","last_synced_at":"2025-05-06T00:31:24.961Z","repository":{"id":74249718,"uuid":"79851750","full_name":"pragmaticivan/wizard","owner":"pragmaticivan","description":"🎩 Autoload your express/object dependencies using the power of glob.","archived":false,"fork":false,"pushed_at":"2017-02-22T19:26:51.000Z","size":126,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-02T06:06:58.069Z","etag":null,"topics":["autoload","express","glob","nodejs","wizard"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pragmaticivan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"contributing.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-23T21:48:20.000Z","updated_at":"2019-01-17T14:54:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"19cd79e3-843b-4026-9630-abbcb77ac209","html_url":"https://github.com/pragmaticivan/wizard","commit_stats":{"total_commits":132,"total_committers":2,"mean_commits":66.0,"dds":0.007575757575757569,"last_synced_commit":"de2bae1459b113819357cd64965076600ee23be5"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pragmaticivan%2Fwizard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pragmaticivan%2Fwizard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pragmaticivan%2Fwizard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pragmaticivan%2Fwizard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pragmaticivan","download_url":"https://codeload.github.com/pragmaticivan/wizard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252598315,"owners_count":21774236,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autoload","express","glob","nodejs","wizard"],"created_at":"2024-11-13T15:40:30.269Z","updated_at":"2025-05-06T00:31:24.953Z","avatar_url":"https://github.com/pragmaticivan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003ewizard\u003c/h1\u003e\n\n\u003ch5 align=\"center\"\u003eFast, flexible autoload for express dependencies using the power of glob.\u003c/h5\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"http://travis-ci.org/pragmaticivan/wizard\"\u003e\n    \u003cimg src=\"https://secure.travis-ci.org/pragmaticivan/wizard.svg?branch=master\" alt=\"Travis CI\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://codecov.io/gh/pragmaticivan/wizard\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/pragmaticivan/wizard/branch/master/graph/badge.svg\" alt=\"Coverage\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://codeclimate.com/github/pragmaticivan/wizard\"\u003e\n    \u003cimg src=\"https://codeclimate.com/github/pragmaticivan/wizard/badges/gpa.svg\" /\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://www.npmjs.com/package/express-wizard\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/express-wizard.svg\" alt=\"Npm\" /\u003e\n  \u003c/a\u003e\n\n  \u003cimg src=\"https://img.shields.io/npm/l/express-wizard.svg\" alt=\"License\"\u003e\n\u003c/div\u003e\n\n## Why\n\nLoading 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.\n\nThat's why express-wizard exists.\n\n## Install\n\nYou can get it on npm.\n\n```bash\n$ npm install express-wizard --save\n\n// or\n\n$ yarn add express-wizard\n```\n## Usage\n```js\nvar Wizard = require('express-wizard');\n\nvar instance = new Wizard()\n                      .inject('model/**/*.js')\n                      .inject(['controller/**/*.js', 'service/**/*.js'])\n                      .inject('stop.js')\n                      .exclude('middleware/**/*.js')\n                      .exclude('start.js')\n                      .into(app);\n// app.model.foo\n// app.model.bar\n// app.controller.foo\n// app.controller.bar\n// app.service.foo\n// app.service.bar\n// app.stop\n\n```\n\n## Options\n\n#### Defaults\n\n```js\nnew Wizard({\n  cwd: process.cwd(),\n  logger: console,\n  verbose: true,\n  loggingType: 'info',\n  defaultExclusion: []\n});\n```\n### Logging\n\n  `logger` - Defaults to console, this can be switched out.\n  `verbose` - On by default, set to `false` for no logging\n  `loggingType` - Set the type of logging, defaults to `info`\n\n### Base Directory (cwd)\n\n  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:\n\n```js\nnew Wizard()\n  .include('project/model/**/*.js') // ./project/model/foo.js\n  .into(app);\n```\n\n  would result in:\n\n```js\napp.project.model.foo\n```\n\n  so using the `cwd` option:\n\n```js\nnew Wizard({cwd: 'project'})\n  .include('model/**/*.js') // ./project/model/foo.js\n  .into(app);\n```\n  would give us:\n\n```js\napp.model.foo\n```\n\n\n## Semver\n\nUntil 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.\n\n## Tests\n\nTo run the test suite, first install the dependencies, then run `npm test`:\n\n```bash\n$ npm install\nor\n$ yarn install\n\n$ npm test\n```\n## Resources\n\n* [Changelog](https://github.com/pragmaticivan/wizard/blob/master/CHANGELOG.md)\n* [Contributing Guide](https://github.com/pragmaticivan/wizard/blob/master/CONTRIBUTING.md)\n* [Code of Conduct](https://github.com/pragmaticivan/wizard/blob/master/CODE_OF_CONDUCT.md)\n\n## License\n\n[MIT License](http://pragmaticivan.mit-license.org/) © Ivan Santos\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpragmaticivan%2Fwizard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpragmaticivan%2Fwizard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpragmaticivan%2Fwizard/lists"}