UNPKG

knifecycle

Version:

Manage your NodeJS processes's lifecycle automatically with an unobtrusive dependency injection implementation.

847 lines (344 loc) 29.4 kB
## [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)