Launch Week Day 4: Introducing Data Exports.Learn More
Socket
Book a DemoSign in
Socket

knifecycle

Package Overview
Dependencies
Maintainers
1
Versions
116
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

knifecycle - npm Package Compare versions

Comparing version
14.0.0
to
14.1.0
+9
-0
CHANGELOG.md

@@ -0,1 +1,10 @@

# [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)

@@ -2,0 +11,0 @@

+1
-1

@@ -171,3 +171,3 @@ import { SPECIAL_PROPS, parseDependencyDeclaration, initializer, } from './util.js';

}
node.__childNodes.forEach((childNode) => {
(node?.__childNodes || []).forEach((childNode) => {
hash = buildHashFromNode(childNode, hash);

@@ -174,0 +174,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}

@@ -0,1 +1,2 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';

@@ -44,3 +45,3 @@ import { YError } from 'yerror';

});
it('should build an initialization module', async () => {
test('should build an initialization module', async () => {
const $ = new Knifecycle();

@@ -47,0 +48,0 @@ $.register(constant('PWD', '~/my-project'));

@@ -1,1 +0,1 @@

{"version":3,"file":"build.test.js","sourceRoot":"","sources":["../src/build.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG/D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,KAAK,UAAU,SAAS;QACtB,OAAO;YACL,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG;QACrB,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QAC7C,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;QACD,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;QACD,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;KACF,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAChC;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,IAAI;KAChB,EACD,KAAK,IAAI,EAAE;QACT,OAAO,KAAK,UAAU,SAAS,CAAC,IAAI;YAClC,OAAO,cAAc,CAAC,IAAI,CAAC;gBACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACd,IAAI,EAAE,cAAc,IAAI,EAAE;oBAC1B,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;iBAClC,CAAC;gBACJ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;QAE3B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAEnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAErC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAEzB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,KAAK,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DL,CACI,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
{"version":3,"file":"build.test.js","sourceRoot":"","sources":["../src/build.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,sBAAsB,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG/D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,KAAK,UAAU,SAAS;QACtB,OAAO;YACL,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;IACD,MAAM,cAAc,GAAG;QACrB,QAAQ,EAAE,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;QAC7C,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;QACD,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;YAC5B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;QACD,IAAI,EAAE,WAAW,CACf;YACE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;YACnC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAM;SACb,EACD,SAAS,CACV;KACF,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAChC;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,IAAI;KAChB,EACD,KAAK,IAAI,EAAE;QACT,OAAO,KAAK,UAAU,SAAS,CAAC,IAAI;YAClC,OAAO,cAAc,CAAC,IAAI,CAAC;gBACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACd,IAAI,EAAE,cAAc,IAAI,EAAE;oBAC1B,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC;iBAClC,CAAC;gBACJ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,IAAI,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;QAE3B,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;QAC5C,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;QAEnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAErC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAEzB,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,KAAK,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DL,CACI,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
/* eslint max-nested-callbacks:0 */
import { describe, beforeEach, test } from '@jest/globals';
import assert from 'assert';

@@ -26,9 +27,9 @@ import sinon from 'sinon';

describe('with constants', () => {
it('should work with an object', () => {
test('should work with an object', () => {
$.register(constant('ENV', ENV));
});
it('should work with a function', () => {
test('should work with a function', () => {
$.register(constant('time', time));
});
it('should work when overriding a previously set constant', async () => {
test('should work when overriding a previously set constant', async () => {
$.register(constant('TEST', 1));

@@ -40,3 +41,3 @@ $.register(constant('TEST', 2));

});
it('should fail when overriding an initialized constant', async () => {
test('should fail when overriding an initialized constant', async () => {
$.register(constant('TEST', 1));

@@ -56,6 +57,6 @@ assert.deepEqual(await $.run(['TEST']), {

describe('with services', () => {
it('should work with a service', () => {
test('should work with a service', () => {
$.register(service(timeService, 'time'));
});
it('should work when overriding a previously set service', async () => {
test('should work when overriding a previously set service', async () => {
$.register(service(async () => () => 1, 'test'));

@@ -66,3 +67,3 @@ $.register(service(async () => () => 2, 'test'));

});
it('should fail when overriding an initialized service', async () => {
test('should fail when overriding an initialized service', async () => {
$.register(service(async () => () => 1, 'test'));

@@ -81,6 +82,6 @@ const { test } = await $.run(['test']);

describe('with providers', () => {
it('should work with a provider', () => {
test('should work with a provider', () => {
$.register(service(hashProvider, 'hash'));
});
it('should work when overriding a previously set provider', async () => {
test('should work when overriding a previously set provider', async () => {
$.register(initializer({

@@ -103,3 +104,3 @@ type: 'provider',

});
it('should work when overriding a previously set singleton provider', async () => {
test('should work when overriding a previously set singleton provider', async () => {
$.register(initializer({

@@ -123,3 +124,3 @@ type: 'provider',

});
it('should fail when overriding an initialized provider', async () => {
test('should fail when overriding an initialized provider', async () => {
$.register(initializer({

@@ -150,3 +151,3 @@ type: 'provider',

});
it('should fail when intitializer is no a function', () => {
test('should fail when intitializer is no a function', () => {
assert.throws(() => {

@@ -160,3 +161,3 @@ $.register('not_a_function');

});
it('should fail with no service name', () => {
test('should fail with no service name', () => {
assert.throws(() => {

@@ -170,3 +171,3 @@ $.register(async () => undefined);

});
it('should fail with a bad service type', () => {
test('should fail with a bad service type', () => {
assert.throws(() => {

@@ -187,3 +188,3 @@ const fn = async () => undefined;

});
it('should fail with an undefined constant', () => {
test('should fail with an undefined constant', () => {
assert.throws(() => {

@@ -201,3 +202,3 @@ const fn = async () => undefined;

});
it('should fail with a non constant that has a value', () => {
test('should fail with a non constant that has a value', () => {
assert.throws(() => {

@@ -215,3 +216,3 @@ const fn = async () => undefined;

});
it('should fail with special autoload intitializer that is not a singleton', () => {
test('should fail with special autoload intitializer that is not a singleton', () => {
assert.throws(() => {

@@ -230,6 +231,6 @@ $.register(initializer({

describe('provider', () => {
it('should register provider', () => {
test('should register provider', () => {
$.register(provider(hashProvider, 'hash'));
});
it('should fail with direct circular dependencies', () => {
test('should fail with direct circular dependencies', () => {
assert.throws(() => {

@@ -243,3 +244,3 @@ $.register(provider(hashProvider, 'hash', ['hash']));

});
it('should fail with direct circular dependencies on mapped services', () => {
test('should fail with direct circular dependencies on mapped services', () => {
assert.throws(() => {

@@ -253,3 +254,3 @@ $.register(provider(hashProvider, 'hash', ['hash>lol']));

});
it('should fail with circular dependencies', () => {
test('should fail with circular dependencies', () => {
assert.throws(() => {

@@ -266,3 +267,3 @@ $.register(provider(inject(['hash3'], hashProvider), 'hash'));

});
it('should fail with deeper circular dependencies', () => {
test('should fail with deeper circular dependencies', () => {
assert.throws(() => {

@@ -285,3 +286,3 @@ $.register(provider(inject(['hash1'], hashProvider), 'hash'));

});
it('should fail with circular dependencies on mapped services', () => {
test('should fail with circular dependencies on mapped services', () => {
assert.throws(() => {

@@ -304,7 +305,7 @@ $.register(provider(inject(['hash3>aHash3'], hashProvider), 'hash'));

describe('run', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
const dependencies = await $.run([]);
assert.deepEqual(dependencies, {});
});
it('should work with constant dependencies', async () => {
test('should work with constant dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -319,3 +320,3 @@ $.register(constant('time', time));

});
it('should work with service dependencies', async () => {
test('should work with service dependencies', async () => {
const wrappedSampleService = inject(['time'], async function sampleService({ time }) {

@@ -332,3 +333,3 @@ return Promise.resolve(typeof time);

});
it('should work with simple dependencies', async () => {
test('should work with simple dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -344,3 +345,3 @@ $.register(constant('time', time));

});
it('should work with given optional dependencies', async () => {
test('should work with given optional dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -357,3 +358,3 @@ $.register(constant('DEBUG', {}));

});
it('should work with lacking optional dependencies', async () => {
test('should work with lacking optional dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -369,3 +370,3 @@ $.register(constant('time', time));

});
it('should work with deeper dependencies', async () => {
test('should work with deeper dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -382,3 +383,3 @@ $.register(constant('time', time));

});
it('should instanciate services once', async () => {
test('should instanciate services once', async () => {
const timeServiceStub = sinon.spy(timeService);

@@ -404,3 +405,3 @@ $.register(constant('ENV', ENV));

});
it('should instanciate a single mapped service', async () => {
test('should instanciate a single mapped service', async () => {
const providerStub = sinon.stub().returns(Promise.resolve({

@@ -428,3 +429,3 @@ service: 'stub',

});
it('should instanciate several services with mappings', async () => {
test('should instanciate several services with mappings', async () => {
const timeServiceStub = sinon.spy(timeService);

@@ -444,3 +445,3 @@ $.register(constant('ENV', ENV));

});
it('should fail with bad service', async () => {
test('should fail with bad service', async () => {
$.register(service((() => undefined), 'lol'));

@@ -456,3 +457,3 @@ try {

});
it('should fail with bad provider', async () => {
test('should fail with bad provider', async () => {
$.register(provider((() => undefined), 'lol'));

@@ -468,3 +469,3 @@ try {

});
it('should fail with bad service in a provider', async () => {
test('should fail with bad service in a provider', async () => {
$.register(provider(() => Promise.resolve(), 'lol'));

@@ -480,3 +481,3 @@ try {

});
it('should fail with undeclared dependencies', async () => {
test('should fail with undeclared dependencies', async () => {
try {

@@ -491,3 +492,3 @@ await $.run(['lol']);

});
it('should fail with undeclared dependencies upstream', async () => {
test('should fail with undeclared dependencies upstream', async () => {
$.register(constant('ENV', ENV));

@@ -506,3 +507,3 @@ $.register(constant('time', time));

});
it('should provide a fatal error handler', async () => {
test('should provide a fatal error handler', async () => {
$.register(constant('ENV', ENV));

@@ -551,3 +552,3 @@ $.register(constant('time', time));

describe('autoload', () => {
it('should work with lacking autoloaded dependencies', async () => {
test('should work with lacking autoloaded dependencies', async () => {
const autoloaderInitializer = initializer({

@@ -578,3 +579,3 @@ type: 'service',

});
it('should work with deeper several lacking dependencies', async () => {
test('should work with deeper several lacking dependencies', async () => {
$.register(initializer({

@@ -605,3 +606,3 @@ name: '$autoload',

});
it('should work with various dependencies', async () => {
test('should work with various dependencies', async () => {
$.register(provider(hashProvider, 'hash', ['hash2']));

@@ -631,3 +632,3 @@ $.register(provider(hashProvider, 'hash3', ['?ENV']));

});
it('should instanciate services once', async () => {
test('should instanciate services once', async () => {
$.register(initializer({

@@ -658,3 +659,3 @@ name: '$autoload',

});
it('should fail when autoload does not exists', async () => {
test('should fail when autoload does not exists', async () => {
try {

@@ -668,3 +669,3 @@ await $.run(['test']);

});
it('should fail when autoloaded dependencies are not found', async () => {
test('should fail when autoloaded dependencies are not found', async () => {
$.register(initializer({

@@ -687,3 +688,3 @@ type: 'service',

});
it('should fail when autoloaded dependencies are not initializers', async () => {
test('should fail when autoloaded dependencies are not initializers', async () => {
$.register(initializer({

@@ -704,3 +705,3 @@ type: 'service',

});
it('should fail when autoloaded dependencies are not right initializers', async () => {
test('should fail when autoloaded dependencies are not right initializers', async () => {
$.register(initializer({

@@ -728,3 +729,3 @@ type: 'service',

});
it('should fail when autoload depends on existing autoloaded dependencies', async () => {
test('should fail when autoload depends on existing autoloaded dependencies', async () => {
$.register(initializer({

@@ -752,3 +753,3 @@ type: 'service',

});
it('should work when autoload depends on optional and unexisting autoloaded dependencies', async () => {
test('should work when autoload depends on optional and unexisting autoloaded dependencies', async () => {
$.register(initializer({

@@ -770,3 +771,3 @@ type: 'service',

});
it.skip('should work when autoload depends on deeper optional and unexisting autoloaded dependencies', async () => {
test.skip('should work when autoload depends on deeper optional and unexisting autoloaded dependencies', async () => {
$.register(initializer({

@@ -799,3 +800,3 @@ type: 'service',

describe('$injector', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -818,3 +819,3 @@ $.register(constant('time', time));

});
it('should work with same dependencies then the running silo', async () => {
test('should work with same dependencies then the running silo', async () => {
$.register(constant('ENV', ENV));

@@ -840,3 +841,3 @@ $.register(constant('time', time));

});
it('should work with name mapping', async () => {
test('should work with name mapping', async () => {
$.register(constant('ENV', ENV));

@@ -865,3 +866,3 @@ $.register(constant('time', time));

});
it('should work with non instanciated dependencies', async () => {
test('should work with non instanciated dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -882,3 +883,3 @@ $.register(constant('time', time));

});
it('should create dependencies when not declared as singletons', async () => {
test('should create dependencies when not declared as singletons', async () => {
$.register(constant('ENV', ENV));

@@ -894,3 +895,3 @@ $.register(provider(hashProvider, 'hash', ['ENV']));

});
it('should reuse dependencies when declared as singletons', async () => {
test('should reuse dependencies when declared as singletons', async () => {
$.register(constant('ENV', ENV));

@@ -912,3 +913,3 @@ $.register(provider(hashProvider, 'hash', ['ENV'], true));

describe('destroy', () => {
it('should work even with one silo and no dependencies', async () => {
test('should work even with one silo and no dependencies', async () => {
assert.equal(typeof $.destroy, 'function');

@@ -918,3 +919,3 @@ const dependencies = await $.run(['$instance']);

});
it('should work with several silos and dependencies', async () => {
test('should work with several silos and dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -933,3 +934,3 @@ $.register(constant('time', time));

});
it('should work when trigered from several silos simultaneously', async () => {
test('should work when trigered from several silos simultaneously', async () => {
$.register(constant('ENV', ENV));

@@ -953,3 +954,3 @@ $.register(constant('time', time));

});
it('should work when a silo shutdown is in progress', async () => {
test('should work when a silo shutdown is in progress', async () => {
$.register(constant('ENV', ENV));

@@ -976,3 +977,3 @@ $.register(constant('time', time));

});
it('should disallow new runs', async () => {
test('should disallow new runs', async () => {
$.register(constant('ENV', ENV));

@@ -995,3 +996,3 @@ $.register(constant('time', time));

describe('$dispose', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
const dependencies = await $.run(['$dispose']);

@@ -1001,3 +1002,3 @@ assert.equal(typeof dependencies.$dispose, 'function');

});
it('should work with constant dependencies', async () => {
test('should work with constant dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1013,3 +1014,3 @@ $.register(constant('time', time));

});
it('should work with simple dependencies', async () => {
test('should work with simple dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1026,3 +1027,3 @@ $.register(constant('time', time));

});
it('should work with deeper dependencies', async () => {
test('should work with deeper dependencies', async () => {
let shutdownCallResolve;

@@ -1073,3 +1074,3 @@ let shutdownResolve;

});
it('should work with deeper multi used dependencies', async () => {
test('should work with deeper multi used dependencies', async () => {
let shutdownCallResolve;

@@ -1116,3 +1117,3 @@ let shutdownResolve;

});
it('should delay service shutdown to their deeper dependencies', async () => {
test('should delay service shutdown to their deeper dependencies', async () => {
const servicesShutdownCalls = sinon.spy(() => Promise.resolve());

@@ -1143,3 +1144,3 @@ $.register(provider(() => Promise.resolve({

});
it('should not shutdown singleton dependencies if used elsewhere', async () => {
test('should not shutdown singleton dependencies if used elsewhere', async () => {
$.register(constant('ENV', ENV));

@@ -1162,3 +1163,3 @@ $.register(constant('time', time));

});
it('should shutdown singleton dependencies if not used elsewhere', async () => {
test('should shutdown singleton dependencies if not used elsewhere', async () => {
$.register(constant('ENV', ENV));

@@ -1178,3 +1179,3 @@ $.register(constant('time', time));

describe('toMermaidGraph', () => {
it('should print nothing when no dependency', () => {
test('should print nothing when no dependency', () => {
$.register(constant('ENV', ENV));

@@ -1184,3 +1185,3 @@ $.register(constant('time', time));

});
it('should print a dependency graph', () => {
test('should print a dependency graph', () => {
$.register(constant('ENV', ENV));

@@ -1202,3 +1203,3 @@ $.register(constant('time', time));

});
it('should allow custom shapes', () => {
test('should allow custom shapes', () => {
$.register(constant('ENV', ENV));

@@ -1235,3 +1236,3 @@ $.register(constant('time', time));

});
it('should allow custom styles', () => {
test('should allow custom styles', () => {
$.register(constant('ENV', ENV));

@@ -1238,0 +1239,0 @@ $.register(constant('time', time));

@@ -1,1 +0,1 @@

{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}

@@ -0,5 +1,6 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';
import { buildInitializationSequence } from './sequence.js';
describe('buildInitializationSequence()', () => {
it('should work with one level trees', () => {
test('should work with one level trees', () => {
const tree = {

@@ -10,3 +11,3 @@ __name: 'lol',

});
it('should work with multi-level trees', () => {
test('should work with multi-level trees', () => {
const tree = {

@@ -64,3 +65,3 @@ __name: 'lol',

});
it('should work with multi-level trees and cross dependencies', () => {
test('should work with multi-level trees and cross dependencies', () => {
const tree = {

@@ -67,0 +68,0 @@ __name: 'lol',

@@ -1,1 +0,1 @@

{"version":3,"file":"sequence.test.js","sourceRoot":"","sources":["../src/sequence.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK;SACd,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE;gCACZ;oCACE,MAAM,EAAE,WAAW;oCACnB,YAAY,EAAE,EAAE;iCACjB;6BACF;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;yBAClB;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE,EAAE;yBACjB;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE;gCACZ;oCACE,MAAM,EAAE,WAAW;oCACnB,YAAY,EAAE,EAAE;iCACjB;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YAClD,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;YAChD,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;YAC/B,CAAC,OAAO,EAAE,OAAO,CAAC;YAClB,CAAC,KAAK,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,IAAI,GAAG;YACX,MAAM,EAAE,KAAK;YACb,YAAY,EAAE;gBACZ;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE;gCACZ;oCACE,MAAM,EAAE,WAAW;oCACnB,YAAY,EAAE,EAAE;iCACjB;6BACF;yBACF;wBACD;4BACE,MAAM,EAAE,SAAS;yBAClB;wBACD;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE;gCACZ;oCACE,MAAM,EAAE,OAAO;oCACf,YAAY,EAAE;wCACZ;4CACE,MAAM,EAAE,SAAS;4CACjB,YAAY,EAAE;gDACZ;oDACE,MAAM,EAAE,OAAO;oDACf,YAAY,EAAE;wDACZ;4DACE,MAAM,EAAE,SAAS;4DACjB,YAAY,EAAE,EAAE;yDACjB;qDACF;iDACF;6CACF;yCACF;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE,EAAE;yBACjB;qBACF;iBACF;gBACD;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE;wBACZ;4BACE,MAAM,EAAE,SAAS;4BACjB,YAAY,EAAE;gCACZ;oCACE,MAAM,EAAE,OAAO;oCACf,YAAY,EAAE;wCACZ;4CACE,MAAM,EAAE,SAAS;4CACjB,YAAY,EAAE,EAAE;yCACjB;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE;YAClD,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC;YACnC,CAAC,SAAS,EAAE,OAAO,CAAC;YACpB,CAAC,SAAS,CAAC;YACX,CAAC,OAAO,CAAC;YACT,CAAC,SAAS,CAAC;YACX,CAAC,OAAO,CAAC;YACT,CAAC,KAAK,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
{"version":3,"file":"sequence.test.js","sourceRoot":"","sources":["../src/sequence.test.ts"],"names":[],"mappings":"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"}

@@ -100,4 +100,4 @@ export declare const DECLARATION_SEPARATOR = ">";

*/
export declare function reuseSpecialProps<FD, TD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<TD, S>, amend?: Partial<ProviderProperties>): ProviderInitializerBuilder<FD & TD, S>;
export declare function reuseSpecialProps<FD, TD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<TD, S>, amend?: Partial<ServiceProperties>): ServiceInitializerBuilder<FD & TD, S>;
export declare function reuseSpecialProps<FD extends Dependencies<any>, TD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<TD, S>, amend?: Partial<ProviderProperties>): ProviderInitializerBuilder<FD & TD, S>;
export declare function reuseSpecialProps<FD extends Dependencies<any>, TD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<TD, S>, amend?: Partial<ServiceProperties>): ServiceInitializerBuilder<FD & TD, S>;
/**

@@ -157,3 +157,3 @@ * Decorator that creates an initializer for a constant value

*/
export declare function service<D, S>(serviceBuilder: ServiceInitializerBuilder<D, S>, name?: DependencyName, dependencies?: DependencyDeclaration[], singleton?: boolean, extra?: ExtraInformations): ServiceInitializer<D, S>;
export declare function service<D extends Dependencies<any>, S>(serviceBuilder: ServiceInitializerBuilder<D, S>, name?: DependencyName, dependencies?: DependencyDeclaration[], singleton?: boolean, extra?: ExtraInformations): ServiceInitializer<D, S>;
/**

@@ -168,3 +168,3 @@ * Decorator that creates an initializer from a service

*/
export declare function autoService<D, S>(serviceBuilder: ServiceInitializerBuilder<D, S>): ServiceInitializer<D, S>;
export declare function autoService<D extends Dependencies<any>, S>(serviceBuilder: ServiceInitializerBuilder<D, S>): ServiceInitializer<D, S>;
/**

@@ -218,3 +218,3 @@ * Decorator that creates an initializer for a provider

*/
export declare function provider<D, S>(providerBuilder: ProviderInitializerBuilder<D, S>, name?: DependencyName, dependencies?: DependencyDeclaration[], singleton?: boolean, extra?: ExtraInformations): ProviderInitializer<D, S>;
export declare function provider<D extends Dependencies<any>, S>(providerBuilder: ProviderInitializerBuilder<D, S>, name?: DependencyName, dependencies?: DependencyDeclaration[], singleton?: boolean, extra?: ExtraInformations): ProviderInitializer<D, S>;
/**

@@ -229,3 +229,3 @@ * Decorator that creates an initializer from a provider

*/
export declare function autoProvider<D, S>(providerBuilder: ProviderInitializerBuilder<D, S>): ProviderInitializer<D, S>;
export declare function autoProvider<D extends Dependencies<any>, S>(providerBuilder: ProviderInitializerBuilder<D, S>): ProviderInitializer<D, S>;
/**

@@ -241,4 +241,4 @@ * Allows to wrap an initializer to add extra initialization steps

*/
export declare function wrapInitializer<D, S>(wrapper: ProviderInitializerWrapper<S, D>, baseInitializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function wrapInitializer<D, S>(wrapper: ServiceInitializerWrapper<S, D>, baseInitializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function wrapInitializer<D extends Dependencies<any>, S>(wrapper: ProviderInitializerWrapper<S, D>, baseInitializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function wrapInitializer<D extends Dependencies<any>, S>(wrapper: ServiceInitializerWrapper<S, D>, baseInitializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
/**

@@ -269,6 +269,6 @@ * Decorator creating a new initializer with different

*/
export declare function inject<D, S>(dependencies: DependencyDeclaration[], initializer: ProviderInitializer<any, S>): ProviderInitializer<D, S>;
export declare function inject<D, S>(dependencies: DependencyDeclaration[], initializer: ProviderInitializerBuilder<any, S>): ProviderInitializerBuilder<D, S>;
export declare function inject<D, S>(dependencies: DependencyDeclaration[], initializer: ServiceInitializer<any, S>): ServiceInitializer<D, S>;
export declare function inject<D, S>(dependencies: DependencyDeclaration[], initializer: ServiceInitializerBuilder<any, S>): ServiceInitializerBuilder<D, S>;
export declare function inject<D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], initializer: ProviderInitializer<any, S>): ProviderInitializer<D, S>;
export declare function inject<D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], initializer: ProviderInitializerBuilder<any, S>): ProviderInitializerBuilder<D, S>;
export declare function inject<D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], initializer: ServiceInitializer<any, S>): ServiceInitializer<D, S>;
export declare function inject<D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], initializer: ServiceInitializerBuilder<any, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -280,6 +280,6 @@ * Apply injected dependencies from the given initializer to another one

*/
export declare function useInject<FD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializer<Dependencies, S>): ProviderInitializer<FD, S>;
export declare function useInject<FD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<Dependencies, S>): ProviderInitializerBuilder<FD, S>;
export declare function useInject<FD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializer<Dependencies, S>): ServiceInitializer<FD, S>;
export declare function useInject<FD, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<Dependencies, S>): ServiceInitializerBuilder<FD, S>;
export declare function useInject<FD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializer<Dependencies, S>): ProviderInitializer<FD, S>;
export declare function useInject<FD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<Dependencies, S>): ProviderInitializerBuilder<FD, S>;
export declare function useInject<FD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializer<Dependencies, S>): ServiceInitializer<FD, S>;
export declare function useInject<FD extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<Dependencies, S>): ServiceInitializerBuilder<FD, S>;
/**

@@ -291,6 +291,6 @@ * Merge injected dependencies of the given initializer with another one

*/
export declare function mergeInject<FD, D, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializer<D, S>): ProviderInitializer<FD & D, S>;
export declare function mergeInject<FD, D, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<FD & D, S>;
export declare function mergeInject<FD, D, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializer<D, S>): ServiceInitializer<FD, S>;
export declare function mergeInject<FD, D, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<FD, S>;
export declare function mergeInject<FD extends Dependencies<any>, D extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializer<D, S>): ProviderInitializer<FD & D, S>;
export declare function mergeInject<FD extends Dependencies<any>, D extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<FD & D, S>;
export declare function mergeInject<FD extends Dependencies<any>, D extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializer<D, S>): ServiceInitializer<FD, S>;
export declare function mergeInject<FD extends Dependencies<any>, D extends Dependencies<any>, S>(from: AsyncInitializerBuilder<FD, unknown> | PartialAsyncInitializer<FD, unknown>, to: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<FD, S>;
/**

@@ -321,6 +321,6 @@ * Decorator creating a new initializer with different

*/
export declare function autoInject<D, S>(initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function autoInject<D, S>(initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function autoInject<D, S>(initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function autoInject<D, S>(initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
export declare function autoInject<D extends Dependencies<any>, S>(initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function autoInject<D extends Dependencies<any>, S>(initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function autoInject<D extends Dependencies<any>, S>(initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function autoInject<D extends Dependencies<any>, S>(initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -346,6 +346,6 @@ * Decorator creating a new initializer with some

*/
export declare function alsoInject<ND, D, S>(dependencies: DependencyDeclaration[], to: ProviderInitializer<D, S>): ProviderInitializer<ND & D, S>;
export declare function alsoInject<ND, D, S>(dependencies: DependencyDeclaration[], to: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<ND & D, S>;
export declare function alsoInject<ND, D, S>(dependencies: DependencyDeclaration[], to: ServiceInitializer<D, S>): ServiceInitializer<ND & D, S>;
export declare function alsoInject<ND, D, S>(dependencies: DependencyDeclaration[], to: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<ND & D, S>;
export declare function alsoInject<ND extends Dependencies<any>, D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], to: ProviderInitializer<D, S>): ProviderInitializer<ND & D, S>;
export declare function alsoInject<ND extends Dependencies<any>, D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], to: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<ND & D, S>;
export declare function alsoInject<ND extends Dependencies<any>, D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], to: ServiceInitializer<D, S>): ServiceInitializer<ND & D, S>;
export declare function alsoInject<ND extends Dependencies<any>, D extends Dependencies<any>, S>(dependencies: DependencyDeclaration[], to: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<ND & D, S>;
/**

@@ -377,6 +377,6 @@ * Decorator creating a new initializer with some

*/
export declare function extra<D, S>(extraInformations: ExtraInformations, initializer: ProviderInitializer<D, S>, merge?: boolean): ProviderInitializer<D, S>;
export declare function extra<D, S>(extraInformations: ExtraInformations, initializer: ProviderInitializerBuilder<D, S>, merge?: boolean): ProviderInitializerBuilder<D, S>;
export declare function extra<D, S>(extraInformations: ExtraInformations, initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function extra<D, S>(extraInformations: ExtraInformations, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
export declare function extra<D extends Dependencies<any>, S>(extraInformations: ExtraInformations, initializer: ProviderInitializer<D, S>, merge?: boolean): ProviderInitializer<D, S>;
export declare function extra<D extends Dependencies<any>, S>(extraInformations: ExtraInformations, initializer: ProviderInitializerBuilder<D, S>, merge?: boolean): ProviderInitializerBuilder<D, S>;
export declare function extra<D extends Dependencies<any>, S>(extraInformations: ExtraInformations, initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function extra<D extends Dependencies<any>, S>(extraInformations: ExtraInformations, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -404,6 +404,6 @@ * Decorator to set an initializer singleton option.

*/
export declare function singleton<D, S>(initializer: ProviderInitializer<D, S>, isSingleton?: boolean): ProviderInitializer<D, S>;
export declare function singleton<D, S>(initializer: ProviderInitializerBuilder<D, S>, isSingleton?: boolean): ProviderInitializerBuilder<D, S>;
export declare function singleton<D, S>(initializer: ServiceInitializer<D, S>, isSingleton?: boolean): ServiceInitializer<D, S>;
export declare function singleton<D, S>(initializer: ServiceInitializerBuilder<D, S>, isSingleton?: boolean): ServiceInitializerBuilder<D, S>;
export declare function singleton<D extends Dependencies<any>, S>(initializer: ProviderInitializer<D, S>, isSingleton?: boolean): ProviderInitializer<D, S>;
export declare function singleton<D extends Dependencies<any>, S>(initializer: ProviderInitializerBuilder<D, S>, isSingleton?: boolean): ProviderInitializerBuilder<D, S>;
export declare function singleton<D extends Dependencies<any>, S>(initializer: ServiceInitializer<D, S>, isSingleton?: boolean): ServiceInitializer<D, S>;
export declare function singleton<D extends Dependencies<any>, S>(initializer: ServiceInitializerBuilder<D, S>, isSingleton?: boolean): ServiceInitializerBuilder<D, S>;
/**

@@ -425,6 +425,6 @@ * Decorator to set an initializer name.

*/
export declare function name<D, S>(name: DependencyName, initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function name<D, S>(name: DependencyName, initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function name<D, S>(name: DependencyName, initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function name<D, S>(name: DependencyName, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
export declare function name<D extends Dependencies<any>, S>(name: DependencyName, initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function name<D extends Dependencies<any>, S>(name: DependencyName, initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function name<D extends Dependencies<any>, S>(name: DependencyName, initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function name<D extends Dependencies<any>, S>(name: DependencyName, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -443,6 +443,6 @@ * Decorator to set an initializer name from its function name.

*/
export declare function autoName<D, S>(initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function autoName<D, S>(initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function autoName<D, S>(initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function autoName<D, S>(initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
export declare function autoName<D extends Dependencies<any>, S>(initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function autoName<D extends Dependencies<any>, S>(initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function autoName<D extends Dependencies<any>, S>(initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function autoName<D extends Dependencies<any>, S>(initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -470,6 +470,6 @@ * Decorator to set an initializer type.

*/
export declare function type<D, S>(type: 'provider', initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function type<D, S>(type: 'provider', initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function type<D, S>(type: 'service', initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function type<D, S>(type: 'service', initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
export declare function type<D extends Dependencies<any>, S>(type: 'provider', initializer: ProviderInitializer<D, S>): ProviderInitializer<D, S>;
export declare function type<D extends Dependencies<any>, S>(type: 'provider', initializer: ProviderInitializerBuilder<D, S>): ProviderInitializerBuilder<D, S>;
export declare function type<D extends Dependencies<any>, S>(type: 'service', initializer: ServiceInitializer<D, S>): ServiceInitializer<D, S>;
export declare function type<D extends Dependencies<any>, S>(type: 'service', initializer: ServiceInitializerBuilder<D, S>): ServiceInitializerBuilder<D, S>;
/**

@@ -496,4 +496,4 @@ * Decorator to set an initializer properties.

*/
export declare function initializer<D, S>(properties: ProviderInputProperties, initializer: ProviderInitializerBuilder<D, S>): ProviderInitializer<D, S>;
export declare function initializer<D, S>(properties: ServiceInputProperties, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializer<D, S>;
export declare function initializer<D extends Dependencies<any>, S>(properties: ProviderInputProperties, initializer: ProviderInitializerBuilder<D, S>): ProviderInitializer<D, S>;
export declare function initializer<D extends Dependencies<any>, S>(properties: ServiceInputProperties, initializer: ServiceInitializerBuilder<D, S>): ServiceInitializer<D, S>;
/**

@@ -585,5 +585,5 @@ * Shortcut to create an initializer with a simple handler

*/
export declare function unwrapInitializerProperties<S, D>(initializer: ProviderInitializer<D, S>): ProviderProperties;
export declare function unwrapInitializerProperties<S, D>(initializer: ServiceInitializer<D, S>): ServiceProperties;
export declare function unwrapInitializerProperties<S, D>(initializer: ConstantInitializer<S>): ConstantProperties;
export declare function unwrapInitializerProperties<S, D>(initializer: Initializer<S, D>): InitializerProperties;
export declare function unwrapInitializerProperties<S, D extends Dependencies<any>>(initializer: ProviderInitializer<D, S>): ProviderProperties;
export declare function unwrapInitializerProperties<S, D extends Dependencies<any>>(initializer: ServiceInitializer<D, S>): ServiceProperties;
export declare function unwrapInitializerProperties<S, D extends Dependencies<any>>(initializer: ConstantInitializer<S>): ConstantProperties;
export declare function unwrapInitializerProperties<S, D extends Dependencies<any>>(initializer: Initializer<S, D>): InitializerProperties;

@@ -1,1 +0,1 @@

{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}

@@ -0,1 +1,2 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';

@@ -13,3 +14,3 @@ import sinon from 'sinon';

describe('reuseSpecialProps', () => {
it('should work', () => {
test('should work', () => {
// We can safely ignore coverage here since the

@@ -53,3 +54,3 @@ // function are here just as placeholders

describe('wrapInitializer', () => {
it('should work with a service initializer', async () => {
test('should work with a service initializer', async () => {
async function baseServiceInitializer() {

@@ -70,3 +71,3 @@ return () => 'test';

});
it('should work with a provider initialzer', async () => {
test('should work with a provider initialzer', async () => {
async function baseInitializer() {

@@ -90,3 +91,3 @@ return { service: () => 'test' };

describe('inject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const dependencies = ['ENV'];

@@ -98,3 +99,3 @@ const newInitializer = inject(dependencies, provider(aProviderInitializer, 'aProvider'));

});
it('should allow to decorate an initializer builder with dependencies', () => {
test('should allow to decorate an initializer builder with dependencies', () => {
const dependencies = ['ENV'];

@@ -106,3 +107,3 @@ const newInitializer = inject(dependencies, aProviderInitializer);

});
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const dependencies = ['ENV'];

@@ -114,3 +115,3 @@ const newInitializer = inject(dependencies, service(aServiceInitializer, 'aService'));

});
it('should allow to decorate an initializer builder with dependencies', () => {
test('should allow to decorate an initializer builder with dependencies', () => {
const dependencies = ['ENV'];

@@ -122,3 +123,3 @@ const newInitializer = inject(dependencies, aServiceInitializer);

});
it('should allow to decorate an initializer with mapped dependencies', () => {
test('should allow to decorate an initializer with mapped dependencies', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -130,3 +131,3 @@ const newInitializer = inject(dependencies, aProviderInitializer);

});
it('should fail with a constant', () => {
test('should fail with a constant', () => {
assert.throws(() => {

@@ -138,3 +139,3 @@ inject(['test'], constant('test', 'test'));

describe('useInject', () => {
it('should set the right dependencies', () => {
test('should set the right dependencies', () => {
const fromDependencies = ['ENV', 'CORS'];

@@ -154,3 +155,3 @@ const fromInitializer = inject(fromDependencies, aProviderInitializer);

describe('mergeInject', () => {
it('should amend dependencies', () => {
test('should amend dependencies', () => {
const fromDependencies = ['ENV', 'CORS'];

@@ -171,3 +172,3 @@ const fromInitializer = inject(fromDependencies, aProviderInitializer);

describe('autoInject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const baseProvider = async ({ ENV, mysql: db }) => async () => ({

@@ -183,3 +184,3 @@ ENV,

});
it('should allow to decorate an initializer with a function name', () => {
test('should allow to decorate an initializer with a function name', () => {
async function baseProvider({ ENV, mysql: db }) {

@@ -197,3 +198,3 @@ async () => ({

});
it('should allow to decorate an initializer with optional dependencies', () => {
test('should allow to decorate an initializer with optional dependencies', () => {
const noop = () => undefined;

@@ -211,3 +212,3 @@ const baseProvider = async ({ ENV, log = noop, debug: aDebug = noop }) => async () => ({

});
it('should allow to decorate an initializer with several arguments', () => {
test('should allow to decorate an initializer with several arguments', () => {
const noop = () => undefined;

@@ -225,3 +226,3 @@ const baseProvider = async ({ ENV, log = noop, debug: aDebug = noop }) => async () => ({

});
it('should allow to decorate an initializer with complex arguments', () => {
test('should allow to decorate an initializer with complex arguments', () => {
const noop = () => undefined;

@@ -239,3 +240,3 @@ const baseProvider = async ({ ENV, log = noop, debug: aDebug = noop }) => async () => ({

});
it('should fail with non async initializers', () => {
test('should fail with non async initializers', () => {
assert.throws(() => {

@@ -247,3 +248,3 @@ autoInject((({ foo: bar = { bar: 'foo' } }) => {

});
it('should fail with too complex injections', () => {
test('should fail with too complex injections', () => {
assert.throws(() => {

@@ -255,3 +256,3 @@ autoInject(async ({ foo: bar = { bar: 'foo' } }) => {

});
it('should fail with no injections', () => {
test('should fail with no injections', () => {
assert.throws(() => {

@@ -263,3 +264,3 @@ autoInject(async () => undefined);

describe('alsoInject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(['ENV'], inject(['TEST'], aProviderInitializer));

@@ -269,3 +270,3 @@ assert.notEqual(newInitializer, aProviderInitializer);

});
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(['ENV'], aProviderInitializer);

@@ -275,3 +276,3 @@ assert.notEqual(newInitializer, aProviderInitializer);

});
it('should dedupe dependencies', () => {
test('should dedupe dependencies', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -289,3 +290,3 @@ const newInitializer = alsoInject(['ENV', '?NODE_ENV', '?TEST', 'TEST2', 'db>mysql'], alsoInject(['ENV', 'NODE_ENV', '?TEST', '?TEST2', 'mysql'], baseProvider));

});
it('should preserve single optional dependencies', () => {
test('should preserve single optional dependencies', () => {
const baseProvider = inject(['ENV', '?TEST'], aProviderInitializer);

@@ -301,3 +302,3 @@ const newInitializer = alsoInject(['ENV', '?TEST2'], alsoInject(['ENV', '?TEST3'], baseProvider));

});
it('should preserve mapped dependencies', () => {
test('should preserve mapped dependencies', () => {
const baseProvider = inject(['mysql', '?sftp'], aProviderInitializer);

@@ -313,3 +314,3 @@ const newInitializer = alsoInject(['db>mysql', '?ftp>sftp'], baseProvider);

});
it('should solve dependencies alias name clash', () => {
test('should solve dependencies alias name clash', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -326,3 +327,3 @@ const newInitializer = alsoInject(['ENV', '?NODE_ENV', '?TEST', 'db>mysql', '?log>logly'], alsoInject(['ENV', 'NODE_ENV', '?TEST', 'db>pg', '?log>logger'], baseProvider));

});
it('should solve dependencies alias name clash', () => {
test('should solve dependencies alias name clash', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -341,3 +342,3 @@ const newInitializer = alsoInject(['ENV', '?NODE_ENV', '?TEST', 'db>mysql', '?log>logly'], alsoInject(['ENV', 'NODE_ENV', '?TEST', 'db>pg', '?log>logger'], baseProvider));

describe('parseInjections', () => {
it('should work with TypeScript dependencies', () => {
test('should work with TypeScript dependencies', () => {
assert.deepEqual(parseInjections(`async function initNexmo({

@@ -353,3 +354,3 @@ ENV,

});
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(['ENV'], aProviderInitializer);

@@ -361,3 +362,3 @@ assert.notEqual(newInitializer, aProviderInitializer);

describe('singleton', () => {
it('should allow to decorate an initializer with singleton option', () => {
test('should allow to decorate an initializer with singleton option', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -370,3 +371,3 @@ const newInitializer = inject(dependencies, singleton(aProviderInitializer, true));

});
it('should allow to be used several times', () => {
test('should allow to be used several times', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -381,3 +382,3 @@ const newInitializer = inject(dependencies, singleton(singleton(aProviderInitializer), false));

describe('name', () => {
it('should allow to decorate an initializer with a name', () => {
test('should allow to decorate an initializer with a name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -393,3 +394,3 @@ const baseName = 'hash';

describe('autoName', () => {
it('should allow to decorate an initializer with its function name', () => {
test('should allow to decorate an initializer with its function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -405,3 +406,3 @@ const baseName = 'hash';

});
it('should allow to decorate an initializer with its init like function name', () => {
test('should allow to decorate an initializer with its init like function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -417,3 +418,3 @@ const baseName = 'hash';

});
it('should allow to decorate an initializer with its initialize like function name', () => {
test('should allow to decorate an initializer with its initialize like function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -429,3 +430,3 @@ const baseName = 'hash';

});
it('should allow to decorate a bounded initializer', () => {
test('should allow to decorate a bounded initializer', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -442,3 +443,3 @@ const baseName = 'hash';

});
it('should fail with anonymous functions', () => {
test('should fail with anonymous functions', () => {
assert.throws(() => {

@@ -450,3 +451,3 @@ autoName(async () => undefined);

describe('extra', () => {
it('should allow to decorate an initializer with extra infos', () => {
test('should allow to decorate an initializer with extra infos', () => {
const extraInformations = { httpHandler: true };

@@ -458,3 +459,3 @@ const newInitializer = extra(extraInformations, aProviderInitializer);

});
it('should allow to decorate an initializer with extra infos', () => {
test('should allow to decorate an initializer with extra infos', () => {
const extraInformations = { httpHandler: true };

@@ -466,3 +467,3 @@ const newInitializer = extra(extraInformations, aProviderInitializer, true);

});
it('should allow to decorate an initializer with additional extra infos', () => {
test('should allow to decorate an initializer with additional extra infos', () => {
const baseExtraInformations = { yolo: true, httpHandler: false };

@@ -481,3 +482,3 @@ const additionalExtraInformations = { httpHandler: true };

describe('type', () => {
it('should allow to decorate an initializer with a type', () => {
test('should allow to decorate an initializer with a type', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -495,3 +496,3 @@ const baseName = 'hash';

describe('initializer', () => {
it('should allow to decorate an initializer with every properties', () => {
test('should allow to decorate an initializer with every properties', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -513,3 +514,3 @@ const baseName = 'hash';

});
it('should fail with bad properties', () => {
test('should fail with bad properties', () => {
assert.throws(() => {

@@ -524,3 +525,3 @@ initializer({

describe('constant', () => {
it('should allow to create an initializer from a constant', async () => {
test('should allow to create an initializer from a constant', async () => {
const baseName = 'THE_VALUE';

@@ -533,3 +534,3 @@ const baseValue = 42;

});
it('should fail with dependencies since it makes no sense', () => {
test('should fail with dependencies since it makes no sense', () => {
assert.throws(() => {

@@ -541,3 +542,3 @@ constant('time', inject(['hash3'], async () => undefined));

describe('service', () => {
it('should allow to create an initializer from a service builder', async () => {
test('should allow to create an initializer from a service builder', async () => {
const aServiceBuilder = async (_services) => 'A_SERVICE';

@@ -557,3 +558,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

});
it('should allow to create an initializer from a generic service builder', async () => {
test('should allow to create an initializer from a generic service builder', async () => {
const aServiceBuilder = async (_services) => '';

@@ -573,3 +574,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

});
it('should fail with no service builder', () => {
test('should fail with no service builder', () => {
assert.throws(() => {

@@ -581,3 +582,3 @@ service(undefined);

describe('autoService', () => {
it('should detect the service details', () => {
test('should detect the service details', () => {
const baseServiceBuilder = async function initializeMySQL({ ENV }) {

@@ -592,3 +593,3 @@ return ENV;

});
it('should detect the service details even with no dependencies', () => {
test('should detect the service details even with no dependencies', () => {
const baseServiceBuilder = async function initializeMySQL() {

@@ -605,3 +606,3 @@ return;

describe('provider', () => {
it('should allow to create an initializer from a provider builder', async () => {
test('should allow to create an initializer from a provider builder', async () => {
const aProviderInitializerBuilder = async () => ({ service: 'A_SERVICE' });

@@ -621,3 +622,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

});
it('should allow to create an initializer from a provider builder', async () => {
test('should allow to create an initializer from a provider builder', async () => {
const aServiceBuilder = async (_services) => ({

@@ -639,3 +640,3 @@ service: 'A_SERVICE',

});
it('should fail with no provider builder', () => {
test('should fail with no provider builder', () => {
assert.throws(() => {

@@ -647,3 +648,3 @@ provider(undefined);

describe('autoProvider', () => {
it('should detect the provider details', () => {
test('should detect the provider details', () => {
const baseInitializer = async function initializeMySQL({ ENV, }) {

@@ -658,3 +659,3 @@ return { service: ENV };

});
it('should detect the provider details even with no dependencies', () => {
test('should detect the provider details even with no dependencies', () => {
const baseInitializer = async function initializeMySQL() {

@@ -671,3 +672,3 @@ return { service: 'A_SERVICE' };

describe('handler', () => {
it('should work', async () => {
test('should work', async () => {
const baseName = 'sampleHandler';

@@ -692,3 +693,3 @@ const injectedServices = ['kikooo', 'lol'];

});
it('should fail with no name', () => {
test('should fail with no name', () => {
assert.throws(() => {

@@ -700,3 +701,3 @@ handler(async () => undefined);

describe('autoHandler', () => {
it('should work', async () => {
test('should work', async () => {
const services = {

@@ -719,3 +720,3 @@ kikooo: 'kikooo',

});
it('should work with spread services', async () => {
test('should work with spread services', async () => {
const services = {

@@ -738,3 +739,3 @@ kikooo: 'kikooo',

});
it('should fail for anonymous functions', () => {
test('should fail for anonymous functions', () => {
assert.throws(() => {

@@ -746,3 +747,3 @@ autoHandler(async () => undefined);

describe('parseDependencyDeclaration', () => {
it('should work', () => {
test('should work', () => {
assert.deepEqual(parseDependencyDeclaration('db>pgsql'), {

@@ -754,3 +755,3 @@ serviceName: 'db',

});
it('should work with unmapped names', () => {
test('should work with unmapped names', () => {
assert.deepEqual(parseDependencyDeclaration('?pgsql'), {

@@ -757,0 +758,0 @@ serviceName: 'pgsql',

@@ -1,1 +0,1 @@

{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../src/util.test.ts"],"names":[],"mappings":"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"}
{
"name": "knifecycle",
"version": "14.0.0",
"version": "14.1.0",
"description": "Manage your NodeJS processes's lifecycle automatically with an unobtrusive dependency injection implementation.",

@@ -80,24 +80,22 @@ "main": "dist/index.js",

"devDependencies": {
"@types/jest": "^28.1.1",
"@typescript-eslint/eslint-plugin": "^5.27.0",
"@typescript-eslint/parser": "^5.27.0",
"commitizen": "^4.2.4",
"@typescript-eslint/eslint-plugin": "^5.36.0",
"@typescript-eslint/parser": "^5.36.0",
"commitizen": "^4.2.5",
"conventional-changelog-cli": "^2.2.2",
"coveralls": "^3.1.1",
"cz-conventional-changelog": "^3.3.0",
"esbuild": "^0.14.43",
"esbuild": "^0.15.6",
"esbuild-jest": "^0.5.0",
"eslint": "^8.17.0",
"eslint": "^8.23.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
"jest": "^28.1.0",
"jsarch": "^5.0.1",
"eslint-plugin-prettier": "^4.2.1",
"jest": "^29.0.1",
"jsarch": "^5.0.2",
"jsdoc-to-markdown": "^7.1.1",
"metapak": "^4.0.4",
"metapak-nfroidure": "12.0.6",
"mocha": "8.2.1",
"prettier": "^2.6.2",
"metapak-nfroidure": "^12.2.0",
"prettier": "^2.7.1",
"rimraf": "^3.0.2",
"sinon": "^14.0.0",
"typescript": "^4.7.3"
"typescript": "^4.8.2"
},

@@ -104,0 +102,0 @@ "dependencies": {

@@ -0,1 +1,2 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';

@@ -59,3 +60,3 @@ import { YError } from 'yerror';

it('should build an initialization module', async () => {
test('should build an initialization module', async () => {
const $ = new Knifecycle();

@@ -62,0 +63,0 @@

@@ -7,5 +7,19 @@ import {

import { buildInitializationSequence } from './sequence.js';
import type { DependencyDeclaration, Initializer } from './util.js';
import type {
DependencyDeclaration,
Initializer,
Dependencies,
} from './util.js';
import type { Autoloader } from './index.js';
type DependencyTreeNode = {
__name: string;
__childNodes?: DependencyTreeNode[];
__initializer: Initializer<unknown, Dependencies<unknown>>;
__inject: DependencyDeclaration[];
__type: 'provider' | 'constant' | 'service';
__initializerName: string;
__path: string;
};
export type BuildInitializer = (

@@ -89,3 +103,3 @@ dependencies: DependencyDeclaration[],

const dependenciesHash = buildDependenciesHash(
dependencyTrees.filter(identity),
dependencyTrees.filter(identity) as DependencyTreeNode[],
);

@@ -184,12 +198,2 @@ const batches = buildInitializationSequence({

type DependencyTreeNode = {
__name: string;
__childNodes?: DependencyTreeNode[];
__initializer: Initializer<unknown, Record<string, unknown>>;
__inject: DependencyDeclaration[];
__type: 'provider' | 'constant' | 'service';
__initializerName: string;
__path: string;
};
async function buildDependencyTree(

@@ -245,3 +249,6 @@ {

function buildDependenciesHash(dependencyTrees, hash = {}) {
function buildDependenciesHash(
dependencyTrees: DependencyTreeNode[],
hash: Record<string, DependencyTreeNode> = {},
): Record<string, DependencyTreeNode> {
return dependencyTrees.reduce(

@@ -253,3 +260,6 @@ (hash, tree) => buildHashFromNode(tree, hash),

function buildHashFromNode(node, hash = {}) {
function buildHashFromNode(
node: DependencyTreeNode,
hash: Record<string, DependencyTreeNode> = {},
): Record<string, DependencyTreeNode> {
const nodeIsALeaf = !(node.__childNodes && node.__childNodes.length);

@@ -263,3 +273,3 @@

node.__childNodes.forEach((childNode) => {
(node?.__childNodes || []).forEach((childNode) => {
hash = buildHashFromNode(childNode, hash);

@@ -271,8 +281,8 @@ });

function identity(a) {
function identity<T = unknown>(a: T): T {
return a;
}
function upperCaseFirst(str) {
function upperCaseFirst(str: string): string {
return str[0].toUpperCase() + str.slice(1);
}
/* eslint max-nested-callbacks:0 */
import { describe, beforeEach, test } from '@jest/globals';
import assert from 'assert';

@@ -42,11 +43,11 @@ import sinon from 'sinon';

describe('with constants', () => {
it('should work with an object', () => {
test('should work with an object', () => {
$.register(constant('ENV', ENV));
});
it('should work with a function', () => {
test('should work with a function', () => {
$.register(constant('time', time));
});
it('should work when overriding a previously set constant', async () => {
test('should work when overriding a previously set constant', async () => {
$.register(constant('TEST', 1));

@@ -59,3 +60,3 @@ $.register(constant('TEST', 2));

it('should fail when overriding an initialized constant', async () => {
test('should fail when overriding an initialized constant', async () => {
$.register(constant('TEST', 1));

@@ -79,7 +80,7 @@ assert.deepEqual(await $.run<Record<string, any>>(['TEST']), {

describe('with services', () => {
it('should work with a service', () => {
test('should work with a service', () => {
$.register(service(timeService, 'time'));
});
it('should work when overriding a previously set service', async () => {
test('should work when overriding a previously set service', async () => {
$.register(service(async () => () => 1, 'test'));

@@ -92,3 +93,3 @@ $.register(service(async () => () => 2, 'test'));

it('should fail when overriding an initialized service', async () => {
test('should fail when overriding an initialized service', async () => {
$.register(service(async () => () => 1, 'test'));

@@ -111,7 +112,7 @@ const { test } = await $.run<{ test: () => number }>(['test']);

describe('with providers', () => {
it('should work with a provider', () => {
test('should work with a provider', () => {
$.register(service(hashProvider, 'hash'));
});
it('should work when overriding a previously set provider', async () => {
test('should work when overriding a previously set provider', async () => {
$.register(

@@ -146,3 +147,3 @@ initializer(

it('should work when overriding a previously set singleton provider', async () => {
test('should work when overriding a previously set singleton provider', async () => {
$.register(

@@ -178,3 +179,3 @@ initializer(

it('should fail when overriding an initialized provider', async () => {
test('should fail when overriding an initialized provider', async () => {
$.register(

@@ -220,3 +221,3 @@ initializer(

it('should fail when intitializer is no a function', () => {
test('should fail when intitializer is no a function', () => {
assert.throws(

@@ -234,3 +235,3 @@ () => {

it('should fail with no service name', () => {
test('should fail with no service name', () => {
assert.throws(

@@ -248,3 +249,3 @@ () => {

it('should fail with a bad service type', () => {
test('should fail with a bad service type', () => {
assert.throws(

@@ -269,3 +270,3 @@ () => {

it('should fail with an undefined constant', () => {
test('should fail with an undefined constant', () => {
assert.throws(

@@ -290,3 +291,3 @@ () => {

it('should fail with a non constant that has a value', () => {
test('should fail with a non constant that has a value', () => {
assert.throws(

@@ -311,3 +312,3 @@ () => {

it('should fail with special autoload intitializer that is not a singleton', () => {
test('should fail with special autoload intitializer that is not a singleton', () => {
assert.throws(

@@ -335,7 +336,7 @@ () => {

describe('provider', () => {
it('should register provider', () => {
test('should register provider', () => {
$.register(provider(hashProvider, 'hash'));
});
it('should fail with direct circular dependencies', () => {
test('should fail with direct circular dependencies', () => {
assert.throws(

@@ -353,3 +354,3 @@ () => {

it('should fail with direct circular dependencies on mapped services', () => {
test('should fail with direct circular dependencies on mapped services', () => {
assert.throws(

@@ -367,3 +368,3 @@ () => {

it('should fail with circular dependencies', () => {
test('should fail with circular dependencies', () => {
assert.throws(

@@ -384,3 +385,3 @@ () => {

it('should fail with deeper circular dependencies', () => {
test('should fail with deeper circular dependencies', () => {
assert.throws(

@@ -407,3 +408,3 @@ () => {

it('should fail with circular dependencies on mapped services', () => {
test('should fail with circular dependencies on mapped services', () => {
assert.throws(

@@ -430,3 +431,3 @@ () => {

describe('run', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
const dependencies = await $.run<Record<string, any>>([]);

@@ -437,3 +438,3 @@

it('should work with constant dependencies', async () => {
test('should work with constant dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -451,3 +452,3 @@ $.register(constant('time', time));

it('should work with service dependencies', async () => {
test('should work with service dependencies', async () => {
const wrappedSampleService = inject<{ time: any }, string>(

@@ -470,3 +471,3 @@ ['time'],

it('should work with simple dependencies', async () => {
test('should work with simple dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -485,3 +486,3 @@ $.register(constant('time', time));

it('should work with given optional dependencies', async () => {
test('should work with given optional dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -501,3 +502,3 @@ $.register(constant('DEBUG', {}));

it('should work with lacking optional dependencies', async () => {
test('should work with lacking optional dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -516,3 +517,3 @@ $.register(constant('time', time));

it('should work with deeper dependencies', async () => {
test('should work with deeper dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -532,3 +533,3 @@ $.register(constant('time', time));

it('should instanciate services once', async () => {
test('should instanciate services once', async () => {
const timeServiceStub = sinon.spy(timeService);

@@ -558,3 +559,3 @@

it('should instanciate a single mapped service', async () => {
test('should instanciate a single mapped service', async () => {
const providerStub = sinon.stub().returns(

@@ -590,3 +591,3 @@ Promise.resolve({

it('should instanciate several services with mappings', async () => {
test('should instanciate several services with mappings', async () => {
const timeServiceStub = sinon.spy(timeService);

@@ -610,3 +611,3 @@

it('should fail with bad service', async () => {
test('should fail with bad service', async () => {
$.register(service((() => undefined) as any, 'lol'));

@@ -623,3 +624,3 @@

it('should fail with bad provider', async () => {
test('should fail with bad provider', async () => {
$.register(provider((() => undefined) as any, 'lol'));

@@ -635,3 +636,3 @@ try {

it('should fail with bad service in a provider', async () => {
test('should fail with bad service in a provider', async () => {
$.register(provider(() => Promise.resolve() as any, 'lol'));

@@ -647,3 +648,3 @@ try {

it('should fail with undeclared dependencies', async () => {
test('should fail with undeclared dependencies', async () => {
try {

@@ -658,3 +659,3 @@ await $.run<Record<string, any>>(['lol']);

it('should fail with undeclared dependencies upstream', async () => {
test('should fail with undeclared dependencies upstream', async () => {
$.register(constant('ENV', ENV));

@@ -674,3 +675,3 @@ $.register(constant('time', time));

it('should provide a fatal error handler', async () => {
test('should provide a fatal error handler', async () => {
$.register(constant('ENV', ENV));

@@ -728,3 +729,3 @@ $.register(constant('time', time));

describe('autoload', () => {
it('should work with lacking autoloaded dependencies', async () => {
test('should work with lacking autoloaded dependencies', async () => {
const autoloaderInitializer = initializer(

@@ -765,3 +766,3 @@ {

it('should work with deeper several lacking dependencies', async () => {
test('should work with deeper several lacking dependencies', async () => {
$.register(

@@ -804,3 +805,3 @@ initializer(

it('should work with various dependencies', async () => {
test('should work with various dependencies', async () => {
$.register(provider(hashProvider, 'hash', ['hash2']));

@@ -842,3 +843,3 @@ $.register(provider(hashProvider, 'hash3', ['?ENV']));

it('should instanciate services once', async () => {
test('should instanciate services once', async () => {
$.register(

@@ -881,3 +882,3 @@ initializer(

it('should fail when autoload does not exists', async () => {
test('should fail when autoload does not exists', async () => {
try {

@@ -891,3 +892,3 @@ await $.run<Record<string, any>>(['test']);

it('should fail when autoloaded dependencies are not found', async () => {
test('should fail when autoloaded dependencies are not found', async () => {
$.register(

@@ -916,3 +917,3 @@ initializer(

it('should fail when autoloaded dependencies are not initializers', async () => {
test('should fail when autoloaded dependencies are not initializers', async () => {
$.register(

@@ -939,3 +940,3 @@ initializer(

it('should fail when autoloaded dependencies are not right initializers', async () => {
test('should fail when autoloaded dependencies are not right initializers', async () => {
$.register(

@@ -972,3 +973,3 @@ initializer(

it('should fail when autoload depends on existing autoloaded dependencies', async () => {
test('should fail when autoload depends on existing autoloaded dependencies', async () => {
$.register(

@@ -1005,3 +1006,3 @@ initializer(

it('should work when autoload depends on optional and unexisting autoloaded dependencies', async () => {
test('should work when autoload depends on optional and unexisting autoloaded dependencies', async () => {
$.register(

@@ -1034,3 +1035,3 @@ initializer(

it.skip('should work when autoload depends on deeper optional and unexisting autoloaded dependencies', async () => {
test.skip('should work when autoload depends on deeper optional and unexisting autoloaded dependencies', async () => {
$.register(

@@ -1079,3 +1080,3 @@ initializer(

describe('$injector', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1101,3 +1102,3 @@ $.register(constant('time', time));

it('should work with same dependencies then the running silo', async () => {
test('should work with same dependencies then the running silo', async () => {
$.register(constant('ENV', ENV));

@@ -1126,3 +1127,3 @@ $.register(constant('time', time));

it('should work with name mapping', async () => {
test('should work with name mapping', async () => {
$.register(constant('ENV', ENV));

@@ -1154,3 +1155,3 @@ $.register(constant('time', time));

it('should work with non instanciated dependencies', async () => {
test('should work with non instanciated dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1174,3 +1175,3 @@ $.register(constant('time', time));

it('should create dependencies when not declared as singletons', async () => {
test('should create dependencies when not declared as singletons', async () => {
$.register(constant('ENV', ENV));

@@ -1191,3 +1192,3 @@ $.register(provider(hashProvider, 'hash', ['ENV']));

it('should reuse dependencies when declared as singletons', async () => {
test('should reuse dependencies when declared as singletons', async () => {
$.register(constant('ENV', ENV));

@@ -1214,3 +1215,3 @@ $.register(provider(hashProvider, 'hash', ['ENV'], true));

describe('destroy', () => {
it('should work even with one silo and no dependencies', async () => {
test('should work even with one silo and no dependencies', async () => {
assert.equal(typeof $.destroy, 'function');

@@ -1222,3 +1223,3 @@ const dependencies = await $.run<Record<string, any>>(['$instance']);

it('should work with several silos and dependencies', async () => {
test('should work with several silos and dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1241,3 +1242,3 @@ $.register(constant('time', time));

it('should work when trigered from several silos simultaneously', async () => {
test('should work when trigered from several silos simultaneously', async () => {
$.register(constant('ENV', ENV));

@@ -1268,3 +1269,3 @@ $.register(constant('time', time));

it('should work when a silo shutdown is in progress', async () => {
test('should work when a silo shutdown is in progress', async () => {
$.register(constant('ENV', ENV));

@@ -1293,3 +1294,3 @@ $.register(constant('time', time));

it('should disallow new runs', async () => {
test('should disallow new runs', async () => {
$.register(constant('ENV', ENV));

@@ -1316,3 +1317,3 @@ $.register(constant('time', time));

describe('$dispose', () => {
it('should work with no dependencies', async () => {
test('should work with no dependencies', async () => {
const dependencies = await $.run<Record<string, any>>(['$dispose']);

@@ -1324,3 +1325,3 @@ assert.equal(typeof dependencies.$dispose, 'function');

it('should work with constant dependencies', async () => {
test('should work with constant dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1339,3 +1340,3 @@ $.register(constant('time', time));

it('should work with simple dependencies', async () => {
test('should work with simple dependencies', async () => {
$.register(constant('ENV', ENV));

@@ -1355,3 +1356,3 @@ $.register(constant('time', time));

it('should work with deeper dependencies', async () => {
test('should work with deeper dependencies', async () => {
let shutdownCallResolve;

@@ -1414,3 +1415,3 @@ let shutdownResolve;

it('should work with deeper multi used dependencies', async () => {
test('should work with deeper multi used dependencies', async () => {
let shutdownCallResolve;

@@ -1469,3 +1470,3 @@ let shutdownResolve;

it('should delay service shutdown to their deeper dependencies', async () => {
test('should delay service shutdown to their deeper dependencies', async () => {
const servicesShutdownCalls = sinon.spy(() => Promise.resolve());

@@ -1520,3 +1521,3 @@

it('should not shutdown singleton dependencies if used elsewhere', async () => {
test('should not shutdown singleton dependencies if used elsewhere', async () => {
$.register(constant('ENV', ENV));

@@ -1544,3 +1545,3 @@ $.register(constant('time', time));

it('should shutdown singleton dependencies if not used elsewhere', async () => {
test('should shutdown singleton dependencies if not used elsewhere', async () => {
$.register(constant('ENV', ENV));

@@ -1564,3 +1565,3 @@ $.register(constant('time', time));

describe('toMermaidGraph', () => {
it('should print nothing when no dependency', () => {
test('should print nothing when no dependency', () => {
$.register(constant('ENV', ENV));

@@ -1571,3 +1572,3 @@ $.register(constant('time', time));

it('should print a dependency graph', () => {
test('should print a dependency graph', () => {
$.register(constant('ENV', ENV));

@@ -1593,3 +1594,3 @@ $.register(constant('time', time));

it('should allow custom shapes', () => {
test('should allow custom shapes', () => {
$.register(constant('ENV', ENV));

@@ -1630,3 +1631,3 @@ $.register(constant('time', time));

it('should allow custom styles', () => {
test('should allow custom styles', () => {
$.register(constant('ENV', ENV));

@@ -1633,0 +1634,0 @@ $.register(constant('time', time));

@@ -0,1 +1,2 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';

@@ -5,3 +6,3 @@ import { buildInitializationSequence } from './sequence.js';

describe('buildInitializationSequence()', () => {
it('should work with one level trees', () => {
test('should work with one level trees', () => {
const tree = {

@@ -14,3 +15,3 @@ __name: 'lol',

it('should work with multi-level trees', () => {
test('should work with multi-level trees', () => {
const tree = {

@@ -70,3 +71,3 @@ __name: 'lol',

it('should work with multi-level trees and cross dependencies', () => {
test('should work with multi-level trees and cross dependencies', () => {
const tree = {

@@ -73,0 +74,0 @@ __name: 'lol',

@@ -0,1 +1,2 @@

import { describe, test } from '@jest/globals';
import assert from 'assert';

@@ -41,3 +42,3 @@ import sinon from 'sinon';

describe('reuseSpecialProps', () => {
it('should work', () => {
test('should work', () => {
// We can safely ignore coverage here since the

@@ -87,3 +88,3 @@ // function are here just as placeholders

describe('wrapInitializer', () => {
it('should work with a service initializer', async () => {
test('should work with a service initializer', async () => {
async function baseServiceInitializer() {

@@ -116,3 +117,3 @@ return () => 'test';

it('should work with a provider initialzer', async () => {
test('should work with a provider initialzer', async () => {
async function baseInitializer() {

@@ -151,3 +152,3 @@ return { service: () => 'test' };

describe('inject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const dependencies = ['ENV'];

@@ -164,3 +165,3 @@ const newInitializer = inject<{ ENV: string }, string>(

it('should allow to decorate an initializer builder with dependencies', () => {
test('should allow to decorate an initializer builder with dependencies', () => {
const dependencies = ['ENV'];

@@ -177,3 +178,3 @@ const newInitializer = inject<{ ENV: string }, string>(

it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const dependencies = ['ENV'];

@@ -190,3 +191,3 @@ const newInitializer = inject<{ ENV: string }, string>(

it('should allow to decorate an initializer builder with dependencies', () => {
test('should allow to decorate an initializer builder with dependencies', () => {
const dependencies = ['ENV'];

@@ -203,3 +204,3 @@ const newInitializer = inject<{ ENV: string }, string>(

it('should allow to decorate an initializer with mapped dependencies', () => {
test('should allow to decorate an initializer with mapped dependencies', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -213,3 +214,3 @@ const newInitializer = inject(dependencies, aProviderInitializer);

it('should fail with a constant', () => {
test('should fail with a constant', () => {
assert.throws(() => {

@@ -227,3 +228,3 @@ inject(

describe('useInject', () => {
it('should set the right dependencies', () => {
test('should set the right dependencies', () => {
const fromDependencies = ['ENV', 'CORS'];

@@ -245,3 +246,3 @@ const fromInitializer = inject(fromDependencies, aProviderInitializer);

describe('mergeInject', () => {
it('should amend dependencies', () => {
test('should amend dependencies', () => {
const fromDependencies = ['ENV', 'CORS'];

@@ -270,3 +271,3 @@ const fromInitializer = inject<

describe('autoInject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const baseProvider =

@@ -286,3 +287,3 @@ async ({ ENV, mysql: db }) =>

it('should allow to decorate an initializer with a function name', () => {
test('should allow to decorate an initializer with a function name', () => {
async function baseProvider({ ENV, mysql: db }) {

@@ -302,3 +303,3 @@ async () => ({

it('should allow to decorate an initializer with optional dependencies', () => {
test('should allow to decorate an initializer with optional dependencies', () => {
const noop = () => undefined;

@@ -320,3 +321,3 @@ const baseProvider =

it('should allow to decorate an initializer with several arguments', () => {
test('should allow to decorate an initializer with several arguments', () => {
const noop = () => undefined;

@@ -338,3 +339,3 @@ const baseProvider =

it('should allow to decorate an initializer with complex arguments', () => {
test('should allow to decorate an initializer with complex arguments', () => {
const noop = () => undefined;

@@ -356,3 +357,3 @@ const baseProvider =

it('should fail with non async initializers', () => {
test('should fail with non async initializers', () => {
assert.throws(() => {

@@ -365,3 +366,3 @@ autoInject((({ foo: bar = { bar: 'foo' } }) => {

it('should fail with too complex injections', () => {
test('should fail with too complex injections', () => {
assert.throws(() => {

@@ -374,3 +375,3 @@ autoInject(async ({ foo: bar = { bar: 'foo' } }) => {

it('should fail with no injections', () => {
test('should fail with no injections', () => {
assert.throws(() => {

@@ -383,3 +384,3 @@ autoInject(async () => undefined);

describe('alsoInject', () => {
it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(

@@ -394,3 +395,3 @@ ['ENV'],

it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(['ENV'], aProviderInitializer);

@@ -402,3 +403,3 @@

it('should dedupe dependencies', () => {
test('should dedupe dependencies', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -421,3 +422,3 @@ const newInitializer = alsoInject(

it('should preserve single optional dependencies', () => {
test('should preserve single optional dependencies', () => {
const baseProvider = inject(['ENV', '?TEST'], aProviderInitializer);

@@ -438,3 +439,3 @@ const newInitializer = alsoInject(

it('should preserve mapped dependencies', () => {
test('should preserve mapped dependencies', () => {
const baseProvider = inject(['mysql', '?sftp'], aProviderInitializer);

@@ -452,3 +453,3 @@ const newInitializer = alsoInject(['db>mysql', '?ftp>sftp'], baseProvider);

it('should solve dependencies alias name clash', () => {
test('should solve dependencies alias name clash', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -473,3 +474,3 @@ const newInitializer = alsoInject(

it('should solve dependencies alias name clash', () => {
test('should solve dependencies alias name clash', () => {
const baseProvider = inject(['?TEST'], aProviderInitializer);

@@ -496,3 +497,3 @@ const newInitializer = alsoInject(

describe('parseInjections', () => {
it('should work with TypeScript dependencies', () => {
test('should work with TypeScript dependencies', () => {
assert.deepEqual(

@@ -512,3 +513,3 @@ parseInjections(`async function initNexmo({

it('should allow to decorate an initializer with dependencies', () => {
test('should allow to decorate an initializer with dependencies', () => {
const newInitializer = alsoInject(['ENV'], aProviderInitializer);

@@ -522,3 +523,3 @@

describe('singleton', () => {
it('should allow to decorate an initializer with singleton option', () => {
test('should allow to decorate an initializer with singleton option', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -536,3 +537,3 @@ const newInitializer = inject(

it('should allow to be used several times', () => {
test('should allow to be used several times', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -552,3 +553,3 @@ const newInitializer = inject(

describe('name', () => {
it('should allow to decorate an initializer with a name', () => {
test('should allow to decorate an initializer with a name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -569,3 +570,3 @@ const baseName = 'hash';

describe('autoName', () => {
it('should allow to decorate an initializer with its function name', () => {
test('should allow to decorate an initializer with its function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -586,3 +587,3 @@ const baseName = 'hash';

it('should allow to decorate an initializer with its init like function name', () => {
test('should allow to decorate an initializer with its init like function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -603,3 +604,3 @@ const baseName = 'hash';

it('should allow to decorate an initializer with its initialize like function name', () => {
test('should allow to decorate an initializer with its initialize like function name', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -620,3 +621,3 @@ const baseName = 'hash';

it('should allow to decorate a bounded initializer', () => {
test('should allow to decorate a bounded initializer', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -640,3 +641,3 @@ const baseName = 'hash';

it('should fail with anonymous functions', () => {
test('should fail with anonymous functions', () => {
assert.throws(() => {

@@ -649,3 +650,3 @@ autoName(async () => undefined);

describe('extra', () => {
it('should allow to decorate an initializer with extra infos', () => {
test('should allow to decorate an initializer with extra infos', () => {
const extraInformations = { httpHandler: true };

@@ -659,3 +660,3 @@ const newInitializer = extra(extraInformations, aProviderInitializer);

it('should allow to decorate an initializer with extra infos', () => {
test('should allow to decorate an initializer with extra infos', () => {
const extraInformations = { httpHandler: true };

@@ -669,3 +670,3 @@ const newInitializer = extra(extraInformations, aProviderInitializer, true);

it('should allow to decorate an initializer with additional extra infos', () => {
test('should allow to decorate an initializer with additional extra infos', () => {
const baseExtraInformations = { yolo: true, httpHandler: false };

@@ -690,3 +691,3 @@ const additionalExtraInformations = { httpHandler: true };

describe('type', () => {
it('should allow to decorate an initializer with a type', () => {
test('should allow to decorate an initializer with a type', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -709,3 +710,3 @@ const baseName = 'hash';

describe('initializer', () => {
it('should allow to decorate an initializer with every properties', () => {
test('should allow to decorate an initializer with every properties', () => {
const dependencies = ['ANOTHER_ENV>ENV'];

@@ -732,3 +733,3 @@ const baseName = 'hash';

it('should fail with bad properties', () => {
test('should fail with bad properties', () => {
assert.throws(() => {

@@ -747,3 +748,3 @@ initializer(

describe('constant', () => {
it('should allow to create an initializer from a constant', async () => {
test('should allow to create an initializer from a constant', async () => {
const baseName = 'THE_VALUE';

@@ -758,3 +759,3 @@ const baseValue = 42;

it('should fail with dependencies since it makes no sense', () => {
test('should fail with dependencies since it makes no sense', () => {
assert.throws(() => {

@@ -770,3 +771,3 @@ constant(

describe('service', () => {
it('should allow to create an initializer from a service builder', async () => {
test('should allow to create an initializer from a service builder', async () => {
const aServiceBuilder = async (_services: unknown) => 'A_SERVICE';

@@ -794,3 +795,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

it('should allow to create an initializer from a generic service builder', async () => {
test('should allow to create an initializer from a generic service builder', async () => {
const aServiceBuilder = async <T>(_services: T) => '';

@@ -818,3 +819,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

it('should fail with no service builder', () => {
test('should fail with no service builder', () => {
assert.throws(() => {

@@ -827,3 +828,3 @@ service(undefined as any);

describe('autoService', () => {
it('should detect the service details', () => {
test('should detect the service details', () => {
const baseServiceBuilder = async function initializeMySQL({ ENV }) {

@@ -840,3 +841,3 @@ return ENV;

it('should detect the service details even with no dependencies', () => {
test('should detect the service details even with no dependencies', () => {
const baseServiceBuilder = async function initializeMySQL() {

@@ -855,3 +856,3 @@ return;

describe('provider', () => {
it('should allow to create an initializer from a provider builder', async () => {
test('should allow to create an initializer from a provider builder', async () => {
const aProviderInitializerBuilder = async () => ({ service: 'A_SERVICE' });

@@ -879,3 +880,3 @@ const dependencies = ['ANOTHER_ENV>ENV'];

it('should allow to create an initializer from a provider builder', async () => {
test('should allow to create an initializer from a provider builder', async () => {
const aServiceBuilder = async (_services: unknown) => ({

@@ -904,3 +905,3 @@ service: 'A_SERVICE',

it('should fail with no provider builder', () => {
test('should fail with no provider builder', () => {
assert.throws(() => {

@@ -913,3 +914,3 @@ provider(undefined as any);

describe('autoProvider', () => {
it('should detect the provider details', () => {
test('should detect the provider details', () => {
const baseInitializer = async function initializeMySQL({

@@ -930,3 +931,3 @@ ENV,

it('should detect the provider details even with no dependencies', () => {
test('should detect the provider details even with no dependencies', () => {
const baseInitializer = async function initializeMySQL() {

@@ -945,3 +946,3 @@ return { service: 'A_SERVICE' };

describe('handler', () => {
it('should work', async () => {
test('should work', async () => {
const baseName = 'sampleHandler';

@@ -970,3 +971,3 @@ const injectedServices = ['kikooo', 'lol'];

it('should fail with no name', () => {
test('should fail with no name', () => {
assert.throws(() => {

@@ -979,3 +980,3 @@ handler(async () => undefined);

describe('autoHandler', () => {
it('should work', async () => {
test('should work', async () => {
const services = {

@@ -1002,3 +1003,3 @@ kikooo: 'kikooo',

it('should work with spread services', async () => {
test('should work with spread services', async () => {
const services = {

@@ -1025,3 +1026,3 @@ kikooo: 'kikooo',

it('should fail for anonymous functions', () => {
test('should fail for anonymous functions', () => {
assert.throws(() => {

@@ -1034,3 +1035,3 @@ autoHandler(async () => undefined);

describe('parseDependencyDeclaration', () => {
it('should work', () => {
test('should work', () => {
assert.deepEqual(parseDependencyDeclaration('db>pgsql'), {

@@ -1043,3 +1044,3 @@ serviceName: 'db',

it('should work with unmapped names', () => {
test('should work with unmapped names', () => {
assert.deepEqual(parseDependencyDeclaration('?pgsql'), {

@@ -1046,0 +1047,0 @@ serviceName: 'pgsql',

@@ -237,3 +237,7 @@ /* eslint @typescript-eslint/ban-types:0 */

*/
export function reuseSpecialProps<FD, TD, S>(
export function reuseSpecialProps<
FD extends Dependencies<any>,
TD extends Dependencies<any>,
S,
>(
from:

@@ -245,3 +249,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ProviderInitializerBuilder<FD & TD, S>;
export function reuseSpecialProps<FD, TD, S>(
export function reuseSpecialProps<
FD extends Dependencies<any>,
TD extends Dependencies<any>,
S,
>(
from:

@@ -253,3 +261,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ServiceInitializerBuilder<FD & TD, S>;
export function reuseSpecialProps<FD, TD, S>(
export function reuseSpecialProps<
FD extends Dependencies<any>,
TD extends Dependencies<any>,
S,
>(
from:

@@ -355,3 +367,3 @@ | AsyncInitializerBuilder<FD, unknown>

*/
export function service<D, S>(
export function service<D extends Dependencies<any>, S>(
serviceBuilder: ServiceInitializerBuilder<D, S>,

@@ -397,3 +409,3 @@ name?: DependencyName,

*/
export function autoService<D, S>(
export function autoService<D extends Dependencies<any>, S>(
serviceBuilder: ServiceInitializerBuilder<D, S>,

@@ -456,3 +468,3 @@ ): ServiceInitializer<D, S> {

*/
export function provider<D, S>(
export function provider<D extends Dependencies<any>, S>(
providerBuilder: ProviderInitializerBuilder<D, S>,

@@ -504,3 +516,3 @@ name?: DependencyName,

*/
export function autoProvider<D, S>(
export function autoProvider<D extends Dependencies<any>, S>(
providerBuilder: ProviderInitializerBuilder<D, S>,

@@ -526,11 +538,11 @@ ): ProviderInitializer<D, S> {

export function wrapInitializer<D, S>(
export function wrapInitializer<D extends Dependencies<any>, S>(
wrapper: ProviderInitializerWrapper<S, D>,
baseInitializer: ProviderInitializer<D, S>,
): ProviderInitializer<D, S>;
export function wrapInitializer<D, S>(
export function wrapInitializer<D extends Dependencies<any>, S>(
wrapper: ServiceInitializerWrapper<S, D>,
baseInitializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function wrapInitializer<D, S>(
export function wrapInitializer<D extends Dependencies<any>, S>(
wrapper: ProviderInitializerWrapper<S, D> | ServiceInitializerWrapper<S, D>,

@@ -574,19 +586,19 @@ baseInitializer: ProviderInitializer<D, S> | ServiceInitializer<D, S>,

*/
export function inject<D, S>(
export function inject<D extends Dependencies<any>, S>(
dependencies: DependencyDeclaration[],
initializer: ProviderInitializer<any, S>,
): ProviderInitializer<D, S>;
export function inject<D, S>(
export function inject<D extends Dependencies<any>, S>(
dependencies: DependencyDeclaration[],
initializer: ProviderInitializerBuilder<any, S>,
): ProviderInitializerBuilder<D, S>;
export function inject<D, S>(
export function inject<D extends Dependencies<any>, S>(
dependencies: DependencyDeclaration[],
initializer: ServiceInitializer<any, S>,
): ServiceInitializer<D, S>;
export function inject<D, S>(
export function inject<D extends Dependencies<any>, S>(
dependencies: DependencyDeclaration[],
initializer: ServiceInitializerBuilder<any, S>,
): ServiceInitializerBuilder<D, S>;
export function inject<D, S>(
export function inject<D extends Dependencies<any>, S>(
dependencies: DependencyDeclaration[],

@@ -624,3 +636,3 @@ initializer:

*/
export function useInject<FD, S>(
export function useInject<FD extends Dependencies<any>, S>(
from:

@@ -631,3 +643,3 @@ | AsyncInitializerBuilder<FD, unknown>

): ProviderInitializer<FD, S>;
export function useInject<FD, S>(
export function useInject<FD extends Dependencies<any>, S>(
from:

@@ -638,3 +650,3 @@ | AsyncInitializerBuilder<FD, unknown>

): ProviderInitializerBuilder<FD, S>;
export function useInject<FD, S>(
export function useInject<FD extends Dependencies<any>, S>(
from:

@@ -645,3 +657,3 @@ | AsyncInitializerBuilder<FD, unknown>

): ServiceInitializer<FD, S>;
export function useInject<FD, S>(
export function useInject<FD extends Dependencies<any>, S>(
from:

@@ -652,3 +664,3 @@ | AsyncInitializerBuilder<FD, unknown>

): ServiceInitializerBuilder<FD, S>;
export function useInject<FD, S>(
export function useInject<FD extends Dependencies<any>, S>(
from:

@@ -668,3 +680,7 @@ | AsyncInitializerBuilder<FD, unknown>

*/
export function mergeInject<FD, D, S>(
export function mergeInject<
FD extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
from:

@@ -675,3 +691,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ProviderInitializer<FD & D, S>;
export function mergeInject<FD, D, S>(
export function mergeInject<
FD extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
from:

@@ -682,3 +702,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ProviderInitializerBuilder<FD & D, S>;
export function mergeInject<FD, D, S>(
export function mergeInject<
FD extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
from:

@@ -689,3 +713,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ServiceInitializer<FD, S>;
export function mergeInject<FD, D, S>(
export function mergeInject<
FD extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
from:

@@ -696,3 +724,7 @@ | AsyncInitializerBuilder<FD, unknown>

): ServiceInitializerBuilder<FD, S>;
export function mergeInject<FD, D, S>(
export function mergeInject<
FD extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
from:

@@ -736,15 +768,15 @@ | AsyncInitializerBuilder<FD, unknown>

*/
export function autoInject<D, S>(
export function autoInject<D extends Dependencies<any>, S>(
initializer: ProviderInitializer<D, S>,
): ProviderInitializer<D, S>;
export function autoInject<D, S>(
export function autoInject<D extends Dependencies<any>, S>(
initializer: ProviderInitializerBuilder<D, S>,
): ProviderInitializerBuilder<D, S>;
export function autoInject<D, S>(
export function autoInject<D extends Dependencies<any>, S>(
initializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function autoInject<D, S>(
export function autoInject<D extends Dependencies<any>, S>(
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<D, S>;
export function autoInject<D, S>(
export function autoInject<D extends Dependencies<any>, S>(
initializer:

@@ -783,19 +815,39 @@ | ProviderInitializerBuilder<D, S>

*/
export function alsoInject<ND, D, S>(
export function alsoInject<
ND extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
dependencies: DependencyDeclaration[],
to: ProviderInitializer<D, S>,
): ProviderInitializer<ND & D, S>;
export function alsoInject<ND, D, S>(
export function alsoInject<
ND extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
dependencies: DependencyDeclaration[],
to: ProviderInitializerBuilder<D, S>,
): ProviderInitializerBuilder<ND & D, S>;
export function alsoInject<ND, D, S>(
export function alsoInject<
ND extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
dependencies: DependencyDeclaration[],
to: ServiceInitializer<D, S>,
): ServiceInitializer<ND & D, S>;
export function alsoInject<ND, D, S>(
export function alsoInject<
ND extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
dependencies: DependencyDeclaration[],
to: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<ND & D, S>;
export function alsoInject<ND, D, S>(
export function alsoInject<
ND extends Dependencies<any>,
D extends Dependencies<any>,
S,
>(
dependencies: DependencyDeclaration[],

@@ -873,3 +925,3 @@ initializer:

export function extra<D, S>(
export function extra<D extends Dependencies<any>, S>(
extraInformations: ExtraInformations,

@@ -879,3 +931,3 @@ initializer: ProviderInitializer<D, S>,

): ProviderInitializer<D, S>;
export function extra<D, S>(
export function extra<D extends Dependencies<any>, S>(
extraInformations: ExtraInformations,

@@ -885,11 +937,11 @@ initializer: ProviderInitializerBuilder<D, S>,

): ProviderInitializerBuilder<D, S>;
export function extra<D, S>(
export function extra<D extends Dependencies<any>, S>(
extraInformations: ExtraInformations,
initializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function extra<D, S>(
export function extra<D extends Dependencies<any>, S>(
extraInformations: ExtraInformations,
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<D, S>;
export function extra<D, S>(
export function extra<D extends Dependencies<any>, S>(
extraInformations: ExtraInformations,

@@ -941,19 +993,19 @@ initializer:

*/
export function singleton<D, S>(
export function singleton<D extends Dependencies<any>, S>(
initializer: ProviderInitializer<D, S>,
isSingleton?: boolean,
): ProviderInitializer<D, S>;
export function singleton<D, S>(
export function singleton<D extends Dependencies<any>, S>(
initializer: ProviderInitializerBuilder<D, S>,
isSingleton?: boolean,
): ProviderInitializerBuilder<D, S>;
export function singleton<D, S>(
export function singleton<D extends Dependencies<any>, S>(
initializer: ServiceInitializer<D, S>,
isSingleton?: boolean,
): ServiceInitializer<D, S>;
export function singleton<D, S>(
export function singleton<D extends Dependencies<any>, S>(
initializer: ServiceInitializerBuilder<D, S>,
isSingleton?: boolean,
): ServiceInitializerBuilder<D, S>;
export function singleton<D, S>(
export function singleton<D extends Dependencies<any>, S>(
initializer:

@@ -993,19 +1045,19 @@ | ProviderInitializerBuilder<D, S>

*/
export function name<D, S>(
export function name<D extends Dependencies<any>, S>(
name: DependencyName,
initializer: ProviderInitializer<D, S>,
): ProviderInitializer<D, S>;
export function name<D, S>(
export function name<D extends Dependencies<any>, S>(
name: DependencyName,
initializer: ProviderInitializerBuilder<D, S>,
): ProviderInitializerBuilder<D, S>;
export function name<D, S>(
export function name<D extends Dependencies<any>, S>(
name: DependencyName,
initializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function name<D, S>(
export function name<D extends Dependencies<any>, S>(
name: DependencyName,
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<D, S>;
export function name<D, S>(
export function name<D extends Dependencies<any>, S>(
name: DependencyName,

@@ -1042,15 +1094,15 @@ initializer:

*/
export function autoName<D, S>(
export function autoName<D extends Dependencies<any>, S>(
initializer: ProviderInitializer<D, S>,
): ProviderInitializer<D, S>;
export function autoName<D, S>(
export function autoName<D extends Dependencies<any>, S>(
initializer: ProviderInitializerBuilder<D, S>,
): ProviderInitializerBuilder<D, S>;
export function autoName<D, S>(
export function autoName<D extends Dependencies<any>, S>(
initializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function autoName<D, S>(
export function autoName<D extends Dependencies<any>, S>(
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<D, S>;
export function autoName<D, S>(
export function autoName<D extends Dependencies<any>, S>(
initializer:

@@ -1088,19 +1140,19 @@ | ProviderInitializerBuilder<D, S>

*/
export function type<D, S>(
export function type<D extends Dependencies<any>, S>(
type: 'provider',
initializer: ProviderInitializer<D, S>,
): ProviderInitializer<D, S>;
export function type<D, S>(
export function type<D extends Dependencies<any>, S>(
type: 'provider',
initializer: ProviderInitializerBuilder<D, S>,
): ProviderInitializerBuilder<D, S>;
export function type<D, S>(
export function type<D extends Dependencies<any>, S>(
type: 'service',
initializer: ServiceInitializer<D, S>,
): ServiceInitializer<D, S>;
export function type<D, S>(
export function type<D extends Dependencies<any>, S>(
type: 'service',
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializerBuilder<D, S>;
export function type<D, S>(
export function type<D extends Dependencies<any>, S>(
type: 'service' | 'provider',

@@ -1145,11 +1197,11 @@ initializer:

*/
export function initializer<D, S>(
export function initializer<D extends Dependencies<any>, S>(
properties: ProviderInputProperties,
initializer: ProviderInitializerBuilder<D, S>,
): ProviderInitializer<D, S>;
export function initializer<D, S>(
export function initializer<D extends Dependencies<any>, S>(
properties: ServiceInputProperties,
initializer: ServiceInitializerBuilder<D, S>,
): ServiceInitializer<D, S>;
export function initializer<D, S>(
export function initializer<D extends Dependencies<any>, S>(
properties: ServiceInputProperties | ProviderInputProperties,

@@ -1368,16 +1420,16 @@ initializer:

*/
export function unwrapInitializerProperties<S, D>(
export function unwrapInitializerProperties<S, D extends Dependencies<any>>(
initializer: ProviderInitializer<D, S>,
): ProviderProperties;
export function unwrapInitializerProperties<S, D>(
export function unwrapInitializerProperties<S, D extends Dependencies<any>>(
initializer: ServiceInitializer<D, S>,
): ServiceProperties;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function unwrapInitializerProperties<S, D>(
export function unwrapInitializerProperties<S, D extends Dependencies<any>>(
initializer: ConstantInitializer<S>,
): ConstantProperties;
export function unwrapInitializerProperties<S, D>(
export function unwrapInitializerProperties<S, D extends Dependencies<any>>(
initializer: Initializer<S, D>,
): InitializerProperties;
export function unwrapInitializerProperties<S, D>(
export function unwrapInitializerProperties<S, D extends Dependencies<any>>(
initializer:

@@ -1384,0 +1436,0 @@ | ProviderInitializerBuilder<D, S>