knifecycle
Version:
Manage your NodeJS processes's lifecycle automatically with an unobtrusive dependency injection implementation.
847 lines (344 loc) • 29.4 kB
Markdown
## [19.1.3](https://github.com/nfroidure/knifecycle/compare/v19.1.2...v19.1.3) (2025-11-06)
## [19.1.2](https://github.com/nfroidure/knifecycle/compare/v19.1.1...v19.1.2) (2025-06-16)
## [19.1.1](https://github.com/nfroidure/knifecycle/compare/v19.1.0...v19.1.1) (2025-05-12)
### Bug Fixes
* **types:** export injector type ([7a70363](https://github.com/nfroidure/knifecycle/commit/7a70363ec11f67059db978d16c3d795551530684))
# [19.1.0](https://github.com/nfroidure/knifecycle/compare/v19.0.0...v19.1.0) (2025-05-12)
### Features
* **build:** allow to force a service to be constant ([6563f43](https://github.com/nfroidure/knifecycle/commit/6563f43e44c67f950fbada5e0225252fe6a349f6))
# [19.0.0](https://github.com/nfroidure/knifecycle/compare/v18.0.0...v19.0.0) (2025-02-12)
# [18.0.0](https://github.com/nfroidure/knifecycle/compare/v17.3.0...v18.0.0) (2024-12-04)
### Features
* **core:** add a location special property ([9dd93ae](https://github.com/nfroidure/knifecycle/commit/9dd93ae58ef4c58a077e6df7e667982561084150)), closes [#136](https://github.com/nfroidure/knifecycle/issues/136)
### BREAKING CHANGES
* **core:** The build will need to be adapted to match this new feature. The autoloader service
signature changed. Also the utils now provide a location decorator to allow you to create modules
declaring their own location.
# [17.3.0](https://github.com/nfroidure/knifecycle/compare/v17.2.1...v17.3.0) (2024-12-02)
### Features
* **core:** add a $ready service ([4eeec46](https://github.com/nfroidure/knifecycle/commit/4eeec460e3e364464ba54dc9a665eeb5a50ceeae)), closes [#135](https://github.com/nfroidure/knifecycle/issues/135)
## [17.2.1](https://github.com/nfroidure/knifecycle/compare/v17.2.0...v17.2.1) (2024-11-14)
### Bug Fixes
* **build:** align the build with overrides ([688e5b0](https://github.com/nfroidure/knifecycle/commit/688e5b0f32f6057a2fd5b0023c03edf351c8a785))
### BREAKING CHANGES
* **build:** Some builds could break but in the real world no build were made in such a short
time frame.
# [17.2.0](https://github.com/nfroidure/knifecycle/compare/v17.1.0...v17.2.0) (2024-11-14)
### Features
* **core:** allow to override some services ([e17daed](https://github.com/nfroidure/knifecycle/commit/e17daed4b5ec952eae1e484d0fa7b86127045e57)), closes [#127](https://github.com/nfroidure/knifecycle/issues/127)
# [17.1.0](https://github.com/nfroidure/knifecycle/compare/v17.0.3...v17.1.0) (2024-11-07)
### Features
* **utils:** add a way to uninject a dependency ([7f90e65](https://github.com/nfroidure/knifecycle/commit/7f90e65482f654b2202b20177ba75c3e3160ab26))
## [17.0.3](https://github.com/nfroidure/knifecycle/compare/v17.0.2...v17.0.3) (2024-07-15)
## [17.0.2](https://github.com/nfroidure/knifecycle/compare/v17.0.1...v17.0.2) (2024-05-28)
## [17.0.1](https://github.com/nfroidure/knifecycle/compare/v17.0.0...v17.0.1) (2023-08-20)
### Features
* **build:** add a banner for generated files ([97327e7](https://github.com/nfroidure/knifecycle/commit/97327e71930832e012297587e3f563afcf27530e))
# [17.0.0](https://github.com/nfroidure/knifecycle/compare/v16.0.1...v17.0.0) (2023-08-20)
Enabling the build to use fatal error promises and to gracefully
exit.
## [16.0.1](https://github.com/nfroidure/knifecycle/compare/v16.0.0...v16.0.1) (2023-08-16)
# [16.0.0](https://github.com/nfroidure/knifecycle/compare/v15.0.1...v16.0.0) (2023-08-16)
### Bug Fixes
* **build:** fix deps lock file ([ab9114e](https://github.com/nfroidure/knifecycle/commit/ab9114e2f6d89cffbcf442c1a0199d920a3dc438))
## [15.0.1](https://github.com/nfroidure/knifecycle/compare/v15.0.0...v15.0.1) (2023-05-28)
# [15.0.0](https://github.com/nfroidure/knifecycle/compare/v14.1.0...v15.0.0) (2023-05-28)
# [14.1.0](https://github.com/nfroidure/knifecycle/compare/v14.0.0...v14.1.0) (2022-08-30)
### Bug Fixes
* **types:** fix types according to the last TypeScript version ([0873bff](https://github.com/nfroidure/knifecycle/commit/0873bffb094563c4ffecd80b6484d50f068d7f9b))
# [14.0.0](https://github.com/nfroidure/knifecycle/compare/v13.0.0...v14.0.0) (2022-06-16)
# [13.0.0](https://github.com/nfroidure/knifecycle/compare/v12.0.4...v13.0.0) (2022-06-12)
## [12.0.4](https://github.com/nfroidure/knifecycle/compare/v12.0.3...v12.0.4) (2022-05-25)
## [12.0.3](https://github.com/nfroidure/knifecycle/compare/v12.0.2...v12.0.3) (2022-05-25)
## [12.0.2](https://github.com/nfroidure/knifecycle/compare/v12.0.1...v12.0.2) (2021-11-11)
## [12.0.1](https://github.com/nfroidure/knifecycle/compare/v12.0.0...v12.0.1) (2021-11-01)
### Bug Fixes
* **types:** less strict registering ([3453508](https://github.com/nfroidure/knifecycle/commit/345350877e6bcf24f40cf2ed3d43d8ec92e2ef2a))
# [12.0.0](https://github.com/nfroidure/knifecycle/compare/v11.1.1...v12.0.0) (2021-11-01)
## [11.1.1](https://github.com/nfroidure/knifecycle/compare/v11.1.0...v11.1.1) (2021-04-09)
### Bug Fixes
* **docs:** fix the readme on singletons ([5e51fe9](https://github.com/nfroidure/knifecycle/commit/5e51fe92a45b5a2db447c21e5a8fe8ee08e460ec))
# [11.1.0](https://github.com/nfroidure/knifecycle/compare/v11.0.1...v11.1.0) (2021-01-11)
### Features
* **build:** allow to either use esm or cjs ([719ba37](https://github.com/nfroidure/knifecycle/commit/719ba37a9a9452f2874054404a3a7c27a52d5e4a))
## [11.0.1](https://github.com/nfroidure/knifecycle/compare/v11.0.0...v11.0.1) (2020-12-06)
### Bug Fixes
* **build:** fix build issues with constants ([2d4d597](https://github.com/nfroidure/knifecycle/commit/2d4d597a54527f42d3e9bf9ad0a51d5018a9510b))
# [11.0.0](https://github.com/nfroidure/knifecycle/compare/v10.0.3...v11.0.0) (2020-11-22)
### Bug Fixes
* **types:** fix generic types initializer passthrough ([773a913](https://github.com/nfroidure/knifecycle/commit/773a9139995b9fb3f6766a0ae1394d7913eb5347))
## [10.0.3](https://github.com/nfroidure/knifecycle/compare/v10.0.2...v10.0.3) (2020-10-18)
### Bug Fixes
* **utils:** fix services mappings ([#118](https://github.com/nfroidure/knifecycle/issues/118)) ([5ce4cd4](https://github.com/nfroidure/knifecycle/commit/5ce4cd4ea50b6ec63d19a1e585adc140a6b47adf))
## [10.0.2](https://github.com/nfroidure/knifecycle/compare/v10.0.1...v10.0.2) (2020-09-15)
### Bug Fixes
* **utils:** fix optional dependencies merge ([cadac91](https://github.com/nfroidure/knifecycle/commit/cadac9134d0725763bdb69397e86da3d59d1d52b))
## [10.0.1](https://github.com/nfroidure/knifecycle/compare/v10.0.0...v10.0.1) (2020-09-14)
### Bug Fixes
* **utils:** reexport injections utils ([a94b734](https://github.com/nfroidure/knifecycle/commit/a94b734f62c3f0a8307d8e07627fcba8c928335c))
# [10.0.0](https://github.com/nfroidure/knifecycle/compare/v9.1.1...v10.0.0) (2020-09-14)
### Features
* **utils:** allow object rest spread in autodected injections ([846fde9](https://github.com/nfroidure/knifecycle/commit/846fde91977d9a19c9a91d3b869e81866e870631))
* **utils:** allow to reuse initializers injections ([bc6873f](https://github.com/nfroidure/knifecycle/commit/bc6873f68db1edeebe1c5015cd4f1128a5a508a8))
## [9.1.1](https://github.com/nfroidure/knifecycle/compare/v9.1.0...v9.1.1) (2020-04-02)
### Bug Fixes
* **types:** fix bad type declaration ([21b3c7f](https://github.com/nfroidure/knifecycle/commit/21b3c7fb5fa998594b8b5906baba9d3cd6461939))
# [9.1.0](https://github.com/nfroidure/knifecycle/compare/v9.0.0...v9.1.0) (2020-04-01)
### Features
* **core:** add support for esm ([bbb3491](https://github.com/nfroidure/knifecycle/commit/bbb3491961eafe0b0d6fca22b57f295d02fdb43b))
# [9.0.0](https://github.com/nfroidure/knifecycle/compare/v8.1.0...v9.0.0) (2020-03-20)
# [8.1.0](https://github.com/nfroidure/knifecycle/compare/v8.0.1...v8.1.0) (2020-01-19)
## [8.0.1](https://github.com/nfroidure/knifecycle/compare/v8.0.0...v8.0.1) (2019-12-10)
# [8.0.0](https://github.com/nfroidure/knifecycle/compare/v7.0.3...v8.0.0) (2019-12-07)
### Bug Fixes
* **types:** fix handler types ([4d975df](https://github.com/nfroidure/knifecycle/commit/4d975dfefa77127ca9d7056cccd56d129238e9fb))
## [7.0.3](https://github.com/nfroidure/knifecycle/compare/v7.0.2...v7.0.3) (2019-12-02)
### Bug Fixes
* **types:** use literals instead of onjects for strings ([89a22f9](https://github.com/nfroidure/knifecycle/commit/89a22f9f83766de4423585cabd3526c015d423ef))
## [7.0.2](https://github.com/nfroidure/knifecycle/compare/v7.0.1...v7.0.2) (2019-12-01)
## [7.0.1](https://github.com/nfroidure/knifecycle/compare/v7.0.0...v7.0.1) (2019-12-01)
# [7.0.0](https://github.com/nfroidure/knifecycle/compare/v6.0.0...v7.0.0) (2019-11-28)
### Bug Fixes
* **types:** Fix types and optional parameters ([e49c4e7](https://github.com/nfroidure/knifecycle/commit/e49c4e70a7bd0f9c199501292327f2ddfe344156)), closes [#104](https://github.com/nfroidure/knifecycle/issues/104)
# [6.0.0](https://github.com/nfroidure/knifecycle/compare/v5.3.0...v6.0.0) (2019-03-15)
### Code Refactoring
* **Chore:** Better handling of optional dependencies ([539eb47](https://github.com/nfroidure/knifecycle/commit/539eb47))
### BREAKING CHANGES
* **Chore:** Autoloaders needs to throw a E_UNMATCHED_DEPENDENCY error to still work with
optional dependencies
# [5.3.0](https://github.com/nfroidure/knifecycle/compare/v5.2.0...v5.3.0) (2019-03-03)
### Bug Fixes
* **Debug:** Fix the `$injector` debug message format ([ae8510d](https://github.com/nfroidure/knifecycle/commit/ae8510d))
* **Knifecycle:** Take in count more errors for optional failures ([6b5fab3](https://github.com/nfroidure/knifecycle/commit/6b5fab3)), closes [#83](https://github.com/nfroidure/knifecycle/issues/83)
### Features
* **alsoInject:** Dedupe injections when adding some ([10e9d4f](https://github.com/nfroidure/knifecycle/commit/10e9d4f))
# [5.2.0](https://github.com/nfroidure/knifecycle/compare/v5.1.6...v5.2.0) (2019-02-09)
### Bug Fixes
* **$injector:** Fix services mapping in the $injector ([ee2a2bd](https://github.com/nfroidure/knifecycle/commit/ee2a2bd))
### Features
* **$injector:** Allow new instantiations within $injector calls ([b66e10e](https://github.com/nfroidure/knifecycle/commit/b66e10e))
## [5.1.6](https://github.com/nfroidure/knifecycle/compare/v5.1.5...v5.1.6) (2019-02-02)
## [5.1.5](https://github.com/nfroidure/knifecycle/compare/v5.1.4...v5.1.5) (2019-01-27)
### Bug Fixes
* **autoInject:** Improve the injection detection ([82d3391](https://github.com/nfroidure/knifecycle/commit/82d3391))
## [5.1.4](https://github.com/nfroidure/knifecycle/compare/v5.1.3...v5.1.4) (2019-01-26)
### Bug Fixes
* **autoService/Provider:** Fix auto detection for services and providers with no deps ([761921e](https://github.com/nfroidure/knifecycle/commit/761921e))
* **Types:** Fix the provider declaration for optional properties ([cf2abcc](https://github.com/nfroidure/knifecycle/commit/cf2abcc))
## [5.1.3](https://github.com/nfroidure/knifecycle/compare/v5.1.2...v5.1.3) (2019-01-24)
### Bug Fixes
* **Types:** Set tup the good method name for service descriptors ([e77f6af](https://github.com/nfroidure/knifecycle/commit/e77f6af))
## [5.1.2](https://github.com/nfroidure/knifecycle/compare/v5.1.1...v5.1.2) (2019-01-20)
### Bug Fixes
* **Types:** Fix register method chaining type declaration ([c468a2a](https://github.com/nfroidure/knifecycle/commit/c468a2a))
## [5.1.1](https://github.com/nfroidure/knifecycle/compare/v5.1.0...v5.1.1) (2019-01-20)
### Bug Fixes
* **Tests:** Fix Saucelabs tests ([b77dcaa](https://github.com/nfroidure/knifecycle/commit/b77dcaa))
* **Types:** Fix handlers and constant types ([a42a209](https://github.com/nfroidure/knifecycle/commit/a42a209))
# [5.1.0](https://github.com/nfroidure/knifecycle/compare/v5.0.4...v5.1.0) (2019-01-19)
### Features
* **TypeScript:** Add types for TypeScript support ([65e94a9](https://github.com/nfroidure/knifecycle/commit/65e94a9))
## [5.0.4](https://github.com/nfroidure/knifecycle/compare/v5.0.3...v5.0.4) (2019-01-12)
## [5.0.3](https://github.com/nfroidure/knifecycle/compare/v5.0.2...v5.0.3) (2019-01-12)
### Bug Fixes
* **autoInject:** Ensure auto injection works with trailing commas ([521ab18](https://github.com/nfroidure/knifecycle/commit/521ab18))
## [5.0.2](https://github.com/nfroidure/knifecycle/compare/v5.0.1...v5.0.2) (2018-11-29)
### Bug Fixes
* **Core:** Fail on syntax error even for optional services ([8cfcabd](https://github.com/nfroidure/knifecycle/commit/8cfcabd))
## [5.0.1](https://github.com/nfroidure/knifecycle/compare/v5.0.0...v5.0.1) (2018-11-22)
### Bug Fixes
* **autoInject:** Remove unecessary check in the autoInject regExp ([fff9a6f](https://github.com/nfroidure/knifecycle/commit/fff9a6f))
# [5.0.0](https://github.com/nfroidure/knifecycle/compare/v4.3.1...v5.0.0) (2018-11-18)
### Code Refactoring
* **handler:** Split the handler utils in autoHandler and handler ([cae9b2f](https://github.com/nfroidure/knifecycle/commit/cae9b2f)), closes [#80](https://github.com/nfroidure/knifecycle/issues/80)
* **Utils:** Change the service/provider utils signature ([84e52a6](https://github.com/nfroidure/knifecycle/commit/84e52a6))
### Features
* **auto(Service/Provider):** Add a way to automatically set provider/service ([d08dca7](https://github.com/nfroidure/knifecycle/commit/d08dca7))
### BREAKING CHANGES
* **Utils:** service/provider utils call will need to be changed everywhere
* **handler:** handler calls will need to be converted for the new handler signature or use the
newly created autoHandler function.
## [4.3.1](https://github.com/nfroidure/knifecycle/compare/v4.3.0...v4.3.1) (2018-11-10)
### Bug Fixes
* **autoInject util:** Fix autoInject for named functions ([b3b8c10](https://github.com/nfroidure/knifecycle/commit/b3b8c10))
# [4.3.0](https://github.com/nfroidure/knifecycle/compare/v4.2.0...v4.3.0) (2018-11-10)
### Features
* **autoInject util:** Allow to auto inject even with multi-args functions ([bdf4e8b](https://github.com/nfroidure/knifecycle/commit/bdf4e8b))
# [4.2.0](https://github.com/nfroidure/knifecycle/compare/v4.1.0...v4.2.0) (2018-11-10)
### Features
* **handler util:** Add autodetection features for handler utils ([7190028](https://github.com/nfroidure/knifecycle/commit/7190028))
# [4.1.0](https://github.com/nfroidure/knifecycle/compare/v4.0.0...v4.1.0) (2018-11-10)
### Features
* **autoInject:** Allow to detect optional injections ([ff009fb](https://github.com/nfroidure/knifecycle/commit/ff009fb)), closes [#79](https://github.com/nfroidure/knifecycle/issues/79)
# [4.0.0](https://github.com/nfroidure/knifecycle/compare/v3.1.0...v4.0.0) (2018-11-04)
### chore
* **Dependencies:** Update `metapak-nfroidure` ([dc65134](https://github.com/nfroidure/knifecycle/commit/dc65134))
### Features
* **autoInject:** Adds a utility function to autodetect dependencies ([03c8527](https://github.com/nfroidure/knifecycle/commit/03c8527))
* **autoName:** Allow to set name according to the function name ([19cde56](https://github.com/nfroidure/knifecycle/commit/19cde56))
### BREAKING CHANGES
* **Dependencies:** Drop support for NodeJS < 8 versions
<a name="3.1.0"></a>
# [3.1.0](https://github.com/nfroidure/knifecycle/compare/v3.0.0...v3.1.0) (2018-10-14)
### Features
* **Knifecycle instance:** Add extra errors for bad use ([a43aa30](https://github.com/nfroidure/knifecycle/commit/a43aa30))
<a name="3.0.0"></a>
# [3.0.0](https://github.com/nfroidure/knifecycle/compare/v2.7.0...v3.0.0) (2018-10-11)
### Features
* **$instance:** Add a way to inject the Knifecycle instance ([5321401](https://github.com/nfroidure/knifecycle/commit/5321401))
<a name="2.7.0"></a>
# [2.7.0](https://github.com/nfroidure/knifecycle/compare/v2.6.2...v2.7.0) (2018-10-08)
### Features
* **Decorators:** Add a `service` decorator ([3216abf](https://github.com/nfroidure/knifecycle/commit/3216abf))
* **Decorators:** Add the `constant` decorator ([911898e](https://github.com/nfroidure/knifecycle/commit/911898e)), closes [#60](https://github.com/nfroidure/knifecycle/issues/60)
<a name="2.6.2"></a>
## [2.6.2](https://github.com/nfroidure/knifecycle/compare/v2.6.1...v2.6.2) (2018-09-30)
### Bug Fixes
* **$autoload:** Fix autoload disposal ([f087b12](https://github.com/nfroidure/knifecycle/commit/f087b12))
<a name="2.6.1"></a>
## [2.6.1](https://github.com/nfroidure/knifecycle/compare/v2.6.0...v2.6.1) (2018-09-30)
### Bug Fixes
* **$autoload:** Fix autoload behavior ([2256be0](https://github.com/nfroidure/knifecycle/commit/2256be0))
<a name="2.6.0"></a>
# [2.6.0](https://github.com/nfroidure/knifecycle/compare/v2.5.4...v2.6.0) (2018-09-30)
### Features
* **$autoload:** Allows to autoload missing dependencies ([5b1cdb1](https://github.com/nfroidure/knifecycle/commit/5b1cdb1))
<a name="2.5.4"></a>
## [2.5.4](https://github.com/nfroidure/knifecycle/compare/v2.5.3...v2.5.4) (2018-09-22)
<a name="2.5.3"></a>
## [2.5.3](https://github.com/nfroidure/knifecycle/compare/v2.5.2...v2.5.3) (2018-09-16)
<a name="2.5.2"></a>
## [2.5.2](https://github.com/nfroidure/knifecycle/compare/v2.5.1...v2.5.2) (2018-05-06)
### Bug Fixes
* **Tests:** Fix tests for Node10 ([b3511a4](https://github.com/nfroidure/knifecycle/commit/b3511a4))
<a name="2.5.1"></a>
## [2.5.1](https://github.com/nfroidure/knifecycle/compare/v2.5.0...v2.5.1) (2018-04-13)
<a name="2.5.0"></a>
# [2.5.0](https://github.com/nfroidure/knifecycle/compare/v2.4.2...v2.5.0) (2018-03-21)
### Bug Fixes
* **Build:** Fix build for providers ([2847929](https://github.com/nfroidure/knifecycle/commit/2847929))
### Features
* **API:** Ensure existing initializer type are provided ([bf880d9](https://github.com/nfroidure/knifecycle/commit/bf880d9))
<a name="2.4.2"></a>
## [2.4.2](https://github.com/nfroidure/knifecycle/compare/v2.4.1...v2.4.2) (2017-12-02)
<a name="2.4.1"></a>
## [2.4.1](https://github.com/nfroidure/knifecycle/compare/v2.4.0...v2.4.1) (2017-11-07)
<a name="2.4.0"></a>
# [2.4.0](https://github.com/nfroidure/knifecycle/compare/v2.3.0...v2.4.0) (2017-11-07)
### Features
* **Build:** Allow to build initialization modules ([1aaca1b](https://github.com/nfroidure/knifecycle/commit/1aaca1b))
<a name="2.3.0"></a>
# [2.3.0](https://github.com/nfroidure/knifecycle/compare/v2.2.2...v2.3.0) (2017-10-30)
### Bug Fixes
* **Build:** Fix frontend tests for Firefox ([890227b](https://github.com/nfroidure/knifecycle/commit/890227b))
### Features
* **Extra:** Allow to add extra informations to initializers ([782bade](https://github.com/nfroidure/knifecycle/commit/782bade)), closes [#41](https://github.com/nfroidure/knifecycle/issues/41)
<a name="2.2.2"></a>
## [2.2.2](https://github.com/nfroidure/knifecycle/compare/v2.2.1...v2.2.2) (2017-10-24)
### Bug Fixes
* **Build:** Quick fix of the build ([0b71c08](https://github.com/nfroidure/knifecycle/commit/0b71c08))
<a name="2.2.1"></a>
## [2.2.1](https://github.com/nfroidure/knifecycle/compare/v2.2.0...v2.2.1) (2017-10-24)
### Bug Fixes
* **Services mapping:** Fix deep service mapping ([9445cc3](https://github.com/nfroidure/knifecycle/commit/9445cc3))
### Features
* **Browser:** Add browser support ([d268fbd](https://github.com/nfroidure/knifecycle/commit/d268fbd))
<a name="2.2.0"></a>
# [2.2.0](https://github.com/nfroidure/knifecycle/compare/v2.1.1...v2.2.0) (2017-07-30)
### Features
* **Decorators:** Add the ability to create a initializer from simple function ([f9e505e](https://github.com/nfroidure/knifecycle/commit/f9e505e)), closes [#37](https://github.com/nfroidure/knifecycle/issues/37)
<a name="2.1.1"></a>
## [2.1.1](https://github.com/nfroidure/knifecycle/compare/v2.1.0...v2.1.1) (2017-06-15)
### Bug Fixes
* **Mappings:** Fix the mappings for the initial run ([2cfdb7f](https://github.com/nfroidure/knifecycle/commit/2cfdb7f))
<a name="2.1.0"></a>
# [2.1.0](https://github.com/nfroidure/knifecycle/compare/v2.0.0...v2.1.0) (2017-06-04)
### Features
* **Util:** Add a function to decorate initializers ([477ad14](https://github.com/nfroidure/knifecycle/commit/477ad14))
<a name="2.0.0"></a>
# [2.0.0](https://github.com/nfroidure/knifecycle/compare/v1.4.0...v2.0.0) (2017-05-28)
### Code Refactoring
* **Decorators:** Isolated decorators code ([a776ab8](https://github.com/nfroidure/knifecycle/commit/a776ab8)), closes [#28](https://github.com/nfroidure/knifecycle/issues/28) [#32](https://github.com/nfroidure/knifecycle/issues/32)
* **Dependencies:** Change depends to be a Knifecycle static property ([a35f5ca](https://github.com/nfroidure/knifecycle/commit/a35f5ca)), closes [#24](https://github.com/nfroidure/knifecycle/issues/24)
* **Dependencies declarations:** Change the dependencies mapping symbol fron `:` to `>`. ([9744aeb](https://github.com/nfroidure/knifecycle/commit/9744aeb)), closes [#26](https://github.com/nfroidure/knifecycle/issues/26)
* **Providers:** Simplify the service providers signature ([7f5fef3](https://github.com/nfroidure/knifecycle/commit/7f5fef3)), closes [#30](https://github.com/nfroidure/knifecycle/issues/30)
* **Services:** Do not support services as a promise anymore ([af31c0d](https://github.com/nfroidure/knifecycle/commit/af31c0d))
### Features
* **Options:** Add a decorator to specify service provider options ([867f427](https://github.com/nfroidure/knifecycle/commit/867f427))
### BREAKING CHANGES
* Dependencies declarations: Break 1.0 mappings
* Decorators: Every 1.0 code will break since the `index.js` exports were broken.
* Dependencies: Will break almost every 1.0 things
* Providers: Almost every providers written before will not work anymore
* Services: It is not possible to use a promise while declaring a service.
<a name="1.4.0"></a>
# [1.4.0](https://github.com/nfroidure/knifecycle/compare/v1.3.1...v1.4.0) (2017-05-22)
### Bug Fixes
* **Providers:** Allow services to have options too ([75bffcf](https://github.com/nfroidure/knifecycle/commit/75bffcf))
* **Singletons:** Ensure singletons aren't shut down ([1de26d6](https://github.com/nfroidure/knifecycle/commit/1de26d6))
### Features
* **Bad usage:** Fail on dependencies declaration for constant ([ab57c18](https://github.com/nfroidure/knifecycle/commit/ab57c18))
* **Dependencies declarations:** Allow to make some dependencies optional ([0944709](https://github.com/nfroidure/knifecycle/commit/0944709)), closes [#23](https://github.com/nfroidure/knifecycle/issues/23)
* **Providers:** Allow to declare providers as singletons ([dad9006](https://github.com/nfroidure/knifecycle/commit/dad9006)), closes [#3](https://github.com/nfroidure/knifecycle/issues/3)
* **Shutdown:** Allow to shutdown all silos ([7af87de](https://github.com/nfroidure/knifecycle/commit/7af87de))
* **Singletons:** Shutdown singletons when not used per any silo ([f953851](https://github.com/nfroidure/knifecycle/commit/f953851))
<a name="1.3.1"></a>
## [1.3.1](https://github.com/nfroidure/knifecycle/compare/v1.3.0...v1.3.1) (2017-03-14)
<a name="1.3.0"></a>
# [1.3.0](https://github.com/nfroidure/knifecycle/compare/v1.2.0...v1.3.0) (2017-03-08)
### Bug Fixes
* **mermaid:** Only apply first style ([d78ecd3](https://github.com/nfroidure/knifecycle/commit/d78ecd3))
* **package:** update yerror to version 2.0.0 ([5697a89](https://github.com/nfroidure/knifecycle/commit/5697a89))
### Features
* **mermaid:** Add the ability to generate dependencies graphs ([b2ac582](https://github.com/nfroidure/knifecycle/commit/b2ac582))
* **mermaid:** Allow to add styles to graphs ([520b7a1](https://github.com/nfroidure/knifecycle/commit/520b7a1))
* **mermaid:** Allow to shape Mermaid diagrams node ([ced9dad](https://github.com/nfroidure/knifecycle/commit/ced9dad))
### v1.2.0 (2017/01/31 16:46 +00:00)
- [320ee35](https://github.com/nfroidure/knifecycle/commit/320ee354d9fcdb6ee4d9b9689c609ed92f29ab2a) 1.2.0 (@nfroidure)
- [9e7bf18](https://github.com/nfroidure/knifecycle/commit/9e7bf180920fd9e640db01db4e58e5304ca77783) Supporting services names mapping fix #5 (@nfroidure)
### v1.1.3 (2016/12/28 09:12 +00:00)
- [e49a55b](https://github.com/nfroidure/knifecycle/commit/e49a55bf43016a09cf5f3007ecfa2b36fd4dd147) 1.1.3 (@nfroidure)
- [ff34afc](https://github.com/nfroidure/knifecycle/commit/ff34afc6fd1ee970fe11a6c29978db1839896d26) Drop old Node versions support (@nfroidure)
### v1.1.2 (2016/12/28 09:03 +00:00)
- [8a663e0](https://github.com/nfroidure/knifecycle/commit/8a663e037979eeed2f39384207367ec79dc57ec0) 1.1.2 (@nfroidure)
- [2ce95e2](https://github.com/nfroidure/knifecycle/commit/2ce95e20e7e77a26a617d8a2bc86fdab61e3bc40) Regenerating docs (@nfroidure)
- [ff1bf5e](https://github.com/nfroidure/knifecycle/commit/ff1bf5ee92a2fbf985e781a830da0e30804c198c) Fixing linting (@nfroidure)
- [f37a5d3](https://github.com/nfroidure/knifecycle/commit/f37a5d39ab28565ec23f5212fd33d67ad32ce7e9) Fixing shutdown order (@nfroidure)
- [#4](https://github.com/nfroidure/knifecycle/pull/4) Update dependencies to enable Greenkeeper 🌴 (@nfroidure)
- [b767a8b](https://github.com/nfroidure/knifecycle/commit/b767a8bd0040e11657180a4c661fb41f3294c407) chore(package): update dependencies (@greenkeeper[bot])
### v1.1.1 (2016/10/30 18:11 +00:00)
- [aeacef8](https://github.com/nfroidure/knifecycle/commit/aeacef8e45b7e9cf51cd2f8c1cff78420310cb58) 1.1.1 (@nfroidure)
- [844eed1](https://github.com/nfroidure/knifecycle/commit/844eed19d344047e5612d51af462459024004e40) Fixing typo (@nfroidure)
### v1.1.0 (2016/10/30 09:22 +00:00)
- [4d2db29](https://github.com/nfroidure/knifecycle/commit/4d2db296599a6c2eedc4f7f940a327049be98ab3) 1.1.0 (@nfroidure)
- [8346671](https://github.com/nfroidure/knifecycle/commit/8346671e95bc5cf00da8af35990a89adea2085f6) Adding an helper to get a Knifecycle instance easily (@nfroidure)
- [7b2408c](https://github.com/nfroidure/knifecycle/commit/7b2408c368aa786b218f6f426a501862c8619e6c) Adding the service fix #2 (@nfroidure)
### v1.0.5 (2016/10/30 07:31 +00:00)
- [26d27ea](https://github.com/nfroidure/knifecycle/commit/26d27ea8d83f751edc5318997c14c2147bfebf75) 1.0.5 (@nfroidure)
- [ead7eee](https://github.com/nfroidure/knifecycle/commit/ead7eeeccbaeda699231ce348237eb420042349c) Fixing shutdown for multi used dependency fix #1 (@nfroidure)
### v1.0.4 (2016/09/02 13:08 +00:00)
- [b64a702](https://github.com/nfroidure/knifecycle/commit/b64a702437f8d0f721ea0fc6b2b9185294494ffb) 1.0.4 (@nfroidure)
- [22303b8](https://github.com/nfroidure/knifecycle/commit/22303b83c3ca78f8a521cb351d6149e36d907417) Better feedback when erroring (@nfroidure)
### v1.0.3 (2016/09/01 12:45 +00:00)
- [6e40f63](https://github.com/nfroidure/knifecycle/commit/6e40f63a8a0e6c72ce68876be21700d34ca73cc3) 1.0.3 (@nfroidure)
- [3ccc9c1](https://github.com/nfroidure/knifecycle/commit/3ccc9c1aacdb44e749fb55f07744350da3584273) Avoid instanciating services twice (@nfroidure)
### v1.0.2 (2016/08/31 09:52 +00:00)
- [4c5104a](https://github.com/nfroidure/knifecycle/commit/4c5104aed07ff0bcca137e3348be22652c5093c1) 1.0.2 (@nfroidure)
- [9db5519](https://github.com/nfroidure/knifecycle/commit/9db55197b1df9f2613c733e043047f3461be6521) Fixing service shutdown (@nfroidure)
### v1.0.1 (2016/08/29 13:56 +00:00)
- [f6f8b81](https://github.com/nfroidure/knifecycle/commit/f6f8b8173a1550a267262ee35a536df602fa85b4) 1.0.1 (@nfroidure)
- [bfce2c9](https://github.com/nfroidure/knifecycle/commit/bfce2c91884281cda99ef807d4a84c73dcd4092b) Fixing depends for services (@nfroidure)
### v1.0.0 (2016/08/27 15:17 +00:00)
- [f278cb7](https://github.com/nfroidure/knifecycle/commit/f278cb7a02c7ff5e56bb1f46b42527b8d05e09b7) 1.0.0 (@nfroidure)
- [648d7ff](https://github.com/nfroidure/knifecycle/commit/648d7ff067f9038b9a3bf82d21d72ae83d48bf03) Adding doc (@nfroidure)
- [160d086](https://github.com/nfroidure/knifecycle/commit/160d0867692688f42df2c40a012fb3f574079355) Adding project files (@nfroidure)
- [1ee0bff](https://github.com/nfroidure/knifecycle/commit/1ee0bff8d2cb65bc015e39307fa34da39465d7d3) Adding a LICENSE (@nfroidure)
- [dff2847](https://github.com/nfroidure/knifecycle/commit/dff284714c87857553dc47c45da93e03d76fbd60) Specifying node engine (@nfroidure)
- [acffe5a](https://github.com/nfroidure/knifecycle/commit/acffe5a53410672e7146036acc41b3837e86f879) Adding codeclimate config (@nfroidure)
- [97099fc](https://github.com/nfroidure/knifecycle/commit/97099fc9a7ccfb9fd84a3299ff6a6c594cf92144) Adding coveralss cfg file to git ignore (@nfroidure)
- [f32f016](https://github.com/nfroidure/knifecycle/commit/f32f016c24467f00f6e31fc217ed8412c0aaf120) Fixing the linter issues (@nfroidure)
- [461ecf6](https://github.com/nfroidure/knifecycle/commit/461ecf6773c4bb66a542d25d4debcc965c5fdb4e) Adding travis build (@nfroidure)
- [2243977](https://github.com/nfroidure/knifecycle/commit/22439773bc118b17fc4bd97873629d67ea71c587) Adding badges (@nfroidure)
- [caa3e4e](https://github.com/nfroidure/knifecycle/commit/caa3e4e5971cf9e4a14b6d9c7e55d2800b544bfb) Adding some usage infos and future plans (@nfroidure)
- [f7081a8](https://github.com/nfroidure/knifecycle/commit/f7081a88b6b87310d8c435db33f3cbd7e5858b4e) Adding the fatal error handler (@nfroidure)
- [05fa72a](https://github.com/nfroidure/knifecycle/commit/05fa72a11e9af321368ad7a5297bba77a0483272) First draft of a service injection tool for node (@nfroidure)