knifecycle
Advanced tools
Comparing version 9.0.0 to 9.1.0
@@ -0,1 +1,10 @@ | ||
# [9.1.0](https://github.com/nfroidure/knifecycle/compare/v9.0.0...v9.1.0) (2020-04-01) | ||
### Features | ||
* **core:** add support for esm ([bbb3491](https://github.com/nfroidure/knifecycle/commit/bbb3491961eafe0b0d6fca22b57f295d02fdb43b)) | ||
# [9.0.0](https://github.com/nfroidure/knifecycle/compare/v8.1.0...v9.0.0) (2020-03-20) | ||
@@ -2,0 +11,0 @@ |
{ | ||
"name": "knifecycle", | ||
"version": "9.0.0", | ||
"version": "9.1.0", | ||
"description": "Manage your NodeJS processes's lifecycle automatically with an unobtrusive dependency injection implementation.", | ||
"main": "dist/index.js", | ||
"types": "src/index.d.ts", | ||
"main": "dist/index", | ||
"module": "dist/index.mjs", | ||
"types": "dist/index.d.ts", | ||
"repository": { | ||
@@ -50,3 +51,5 @@ "type": "git", | ||
"cli": "env NODE_ENV=${NODE_ENV:-cli}", | ||
"compile": "babel src --out-dir=dist --source-maps=true", | ||
"compile": "rimraf -f 'dist' && npm run compile:cjs && npm run compile:mjs", | ||
"compile:cjs": "babel --env-name=cjs --out-dir=dist --source-maps=true src", | ||
"compile:mjs": "babel --env-name=mjs --out-file-extension=.mjs --out-dir=dist --source-maps=true src", | ||
"cover": "nyc npm test && nyc report --reporter=html --reporter=text", | ||
@@ -60,3 +63,3 @@ "coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls && rm -rf ./coverage", | ||
"mocha": "mocha --require '@babel/register' src/*.mocha.js", | ||
"precz": "npm t && npm run lint && npm run doc && npm run architecture && npm run metapak -- -s && npm run compile", | ||
"precz": "npm run lint && npm t && npm run compile && npm run doc && npm run architecture && npm run metapak -- -s", | ||
"prepublish": "npm run compile", | ||
@@ -83,8 +86,8 @@ "prettier": "prettier --write src/*.js", | ||
"@babel/cli": "^7.8.4", | ||
"@babel/core": "^7.8.7", | ||
"@babel/plugin-proposal-object-rest-spread": "^7.8.3", | ||
"@babel/preset-env": "^7.8.7", | ||
"@babel/register": "^7.8.6", | ||
"@babel/core": "^7.9.0", | ||
"@babel/plugin-proposal-object-rest-spread": "^7.9.0", | ||
"@babel/preset-env": "^7.9.0", | ||
"@babel/register": "^7.9.0", | ||
"babel-eslint": "^10.1.0", | ||
"browserify": "^16.2.3", | ||
"browserify": "^16.5.1", | ||
"commitizen": "^4.0.3", | ||
@@ -99,13 +102,13 @@ "conventional-changelog-cli": "^2.0.31", | ||
"karma": "^4.4.1", | ||
"karma-browserify": "^6.0.0", | ||
"karma-browserify": "^7.0.0", | ||
"karma-chrome-launcher": "^3.1.0", | ||
"karma-firefox-launcher": "^1.3.0", | ||
"karma-mocha": "^1.3.0", | ||
"karma-sauce-launcher": "^2.0.2", | ||
"karma-sauce-launcher": "^4.1.2", | ||
"metapak": "^3.1.8", | ||
"metapak-nfroidure": "10.0.1", | ||
"metapak-nfroidure": "10.1.2", | ||
"mocha": "^7.1.1", | ||
"nyc": "^15.0.0", | ||
"prettier": "^1.19.1", | ||
"sinon": "^7.2.6" | ||
"prettier": "^2.0.2", | ||
"sinon": "^9.0.1" | ||
}, | ||
@@ -181,3 +184,10 @@ "dependencies": { | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/nfroidure/knifecycle/issues" | ||
}, | ||
"homepage": "https://github.com/nfroidure/knifecycle#readme", | ||
"babel": { | ||
"plugins": [ | ||
"@babel/plugin-proposal-object-rest-spread" | ||
], | ||
"presets": [ | ||
@@ -193,10 +203,34 @@ [ | ||
], | ||
"plugins": [ | ||
"@babel/plugin-proposal-object-rest-spread" | ||
] | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/nfroidure/knifecycle/issues" | ||
}, | ||
"homepage": "https://github.com/nfroidure/knifecycle#readme" | ||
"env": { | ||
"cjs": { | ||
"presets": [ | ||
[ | ||
"@babel/env", | ||
{ | ||
"targets": { | ||
"node": "10" | ||
}, | ||
"modules": "commonjs" | ||
} | ||
] | ||
], | ||
"comments": true | ||
}, | ||
"mjs": { | ||
"presets": [ | ||
[ | ||
"@babel/env", | ||
{ | ||
"targets": { | ||
"node": "12" | ||
}, | ||
"modules": "false" | ||
} | ||
] | ||
], | ||
"comments": false | ||
} | ||
}, | ||
"sourceMaps": true | ||
} | ||
} |
@@ -67,3 +67,3 @@ import { SPECIAL_PROPS, parseDependencyDeclaration, initializer } from './util'; | ||
const dependencyTrees = await Promise.all( | ||
dependencies.map(dependency => | ||
dependencies.map((dependency) => | ||
buildDependencyTree({ $autoload }, dependency), | ||
@@ -85,3 +85,3 @@ ), | ||
// Definition batch #${index}${batch | ||
.map(name => { | ||
.map((name) => { | ||
if ( | ||
@@ -111,3 +111,3 @@ 'constant' === | ||
const batch${index} = {${batch | ||
.map(name => { | ||
.map((name) => { | ||
if ( | ||
@@ -147,3 +147,3 @@ 'constant' === | ||
${batch | ||
.map(name => { | ||
.map((name) => { | ||
return ` | ||
@@ -198,3 +198,3 @@ services['${name}'] = await batch${index}['${name}'];`; | ||
const childNodes = await Promise.all( | ||
initializer[SPECIAL_PROPS.INJECT].map(childDependencyDeclaration => | ||
initializer[SPECIAL_PROPS.INJECT].map((childDependencyDeclaration) => | ||
buildDependencyTree({ $autoload }, childDependencyDeclaration), | ||
@@ -232,3 +232,3 @@ ), | ||
node.__childNodes.forEach(childNode => { | ||
node.__childNodes.forEach((childNode) => { | ||
hash = buildHashFromNode(childNode, hash); | ||
@@ -235,0 +235,0 @@ }); |
@@ -121,3 +121,3 @@ /* eslint max-len: ["warn", { "ignoreComments": true }] */ | ||
async ({ $siloContext }) => ({ | ||
service: async dependenciesDeclarations => | ||
service: async (dependenciesDeclarations) => | ||
_buildFinalHash( | ||
@@ -237,3 +237,3 @@ await this._initializeDependencies( | ||
initializer[SPECIAL_PROPS.INJECT].forEach(dependencyDeclaration => { | ||
initializer[SPECIAL_PROPS.INJECT].forEach((dependencyDeclaration) => { | ||
this._lookupCircularDependencies( | ||
@@ -256,4 +256,4 @@ initializer[SPECIAL_PROPS.NAME], | ||
...this._silosContexts.values(), | ||
].some(siloContext => | ||
siloContext.servicesSequence.some(sequence => | ||
].some((siloContext) => | ||
siloContext.servicesSequence.some((sequence) => | ||
sequence.includes(initializer[SPECIAL_PROPS.NAME]), | ||
@@ -310,3 +310,3 @@ ), | ||
dependencyProvider[SPECIAL_PROPS.INJECT].forEach( | ||
childDependencyDeclaration => { | ||
(childDependencyDeclaration) => { | ||
const childServiceName = _pickServiceNameFromDeclaration( | ||
@@ -366,3 +366,3 @@ childDependencyDeclaration, | ||
const links = Array.from(servicesProviders.keys()) | ||
.filter(provider => !provider.startsWith('$')) | ||
.filter((provider) => !provider.startsWith('$')) | ||
.reduce((links, serviceName) => { | ||
@@ -375,3 +375,3 @@ const serviceProvider = servicesProviders.get(serviceName); | ||
return links.concat( | ||
serviceProvider[SPECIAL_PROPS.INJECT].map(dependencyDeclaration => { | ||
serviceProvider[SPECIAL_PROPS.INJECT].map((dependencyDeclaration) => { | ||
const dependedServiceName = _pickServiceNameFromDeclaration( | ||
@@ -395,5 +395,5 @@ dependencyDeclaration, | ||
({ serviceName, dependedServiceName }) => | ||
` ${_applyShapes(shapes, serviceName) || | ||
serviceName}-->${_applyShapes(shapes, dependedServiceName) || | ||
dependedServiceName}`, | ||
` ${_applyShapes(shapes, serviceName) || serviceName}-->${ | ||
_applyShapes(shapes, dependedServiceName) || dependedServiceName | ||
}`, | ||
), | ||
@@ -403,3 +403,3 @@ ) | ||
Object.keys(classes).map( | ||
className => ` classDef ${className} ${classes[className]}`, | ||
(className) => ` classDef ${className} ${classes[className]}`, | ||
), | ||
@@ -409,3 +409,3 @@ ) | ||
Object.keys(classesApplications).map( | ||
serviceName => | ||
(serviceName) => | ||
` class ${serviceName} ${classesApplications[serviceName]};`, | ||
@@ -468,3 +468,3 @@ ), | ||
promise: new Promise((resolve, reject) => { | ||
siloContext.throwFatalError = err => { | ||
siloContext.throwFatalError = (err) => { | ||
debug('Handled a fatal error', err); | ||
@@ -501,3 +501,3 @@ reject(err); | ||
await Promise.all( | ||
reversedServiceSequence.pop().map(async serviceName => { | ||
reversedServiceSequence.pop().map(async (serviceName) => { | ||
const singletonServiceDescriptor = await _this._pickupSingletonServiceDescriptorPromise( | ||
@@ -519,3 +519,3 @@ serviceName, | ||
if ( | ||
reversedServiceSequence.some(servicesDeclarations => | ||
reversedServiceSequence.some((servicesDeclarations) => | ||
servicesDeclarations.includes(serviceName), | ||
@@ -601,3 +601,3 @@ ) | ||
Promise.all( | ||
[...this._silosContexts].map(siloContext => { | ||
[...this._silosContexts].map((siloContext) => { | ||
const $dispose = siloContext.servicesDescriptors.get(DISPOSE).service; | ||
@@ -915,3 +915,3 @@ | ||
const servicesDescriptors = await Promise.all( | ||
servicesDeclarations.map(async serviceDeclaration => { | ||
servicesDeclarations.map(async (serviceDeclaration) => { | ||
const { mappedName, optional } = parseDependencyDeclaration( | ||
@@ -963,3 +963,3 @@ serviceDeclaration, | ||
const services = await Promise.all( | ||
servicesDescriptors.map(async serviceDescriptor => { | ||
servicesDescriptors.map(async (serviceDescriptor) => { | ||
if (!serviceDescriptor) { | ||
@@ -1076,3 +1076,3 @@ return {}.undef; | ||
} | ||
return servicePromise.then(_service_ => | ||
return servicePromise.then((_service_) => | ||
Promise.resolve({ | ||
@@ -1079,0 +1079,0 @@ service: _service_, |
@@ -204,3 +204,3 @@ /* eslint max-nested-callbacks:0 */ | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_BAD_INITIALIZER'); | ||
@@ -218,3 +218,3 @@ assert.deepEqual(err.params, ['not_a_function']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_ANONYMOUS_ANALYZER'); | ||
@@ -235,3 +235,3 @@ assert.deepEqual(err.params, []); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_BAD_INITIALIZER_TYPE'); | ||
@@ -258,3 +258,3 @@ assert.deepEqual(err.params, [ | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_UNDEFINED_CONSTANT_INITIALIZER'); | ||
@@ -277,3 +277,3 @@ assert.deepEqual(err.params, ['THE_NUMBER']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_NON_SINGLETON_CONSTANT_INITIALIZER'); | ||
@@ -295,3 +295,3 @@ assert.deepEqual(err.params, ['THE_NUMBER']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_BAD_VALUED_NON_CONSTANT_INITIALIZER'); | ||
@@ -317,3 +317,3 @@ assert.deepEqual(err.params, ['myService']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_BAD_AUTOLOADER'); | ||
@@ -337,3 +337,3 @@ assert.deepEqual(err.params, [{}]); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_CIRCULAR_DEPENDENCY'); | ||
@@ -351,3 +351,3 @@ assert.deepEqual(err.params, ['hash']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_CIRCULAR_DEPENDENCY'); | ||
@@ -368,3 +368,3 @@ assert.deepEqual(err.params, ['hash']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_CIRCULAR_DEPENDENCY'); | ||
@@ -385,3 +385,3 @@ assert.deepEqual(err.params, ['hash3', 'hash', 'hash3']); | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_CIRCULAR_DEPENDENCY'); | ||
@@ -408,3 +408,3 @@ assert.deepEqual(err.params, [ | ||
}, | ||
err => { | ||
(err) => { | ||
assert.deepEqual(err.code, 'E_CIRCULAR_DEPENDENCY'); | ||
@@ -697,3 +697,3 @@ assert.deepEqual(err.params, ['hash3', 'hash>aHash', 'hash3>aHash3']); | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: '/path/of/debug', | ||
@@ -734,3 +734,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: `/path/to/${serviceName}`, | ||
@@ -779,3 +779,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => { | ||
async () => async (serviceName) => { | ||
if ('ENV' === serviceName) { | ||
@@ -815,3 +815,3 @@ throw new YError('E_UNMATCHED_DEPENDENCY'); | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: `/path/to/${serviceName}`, | ||
@@ -862,3 +862,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => { | ||
async () => async (serviceName) => { | ||
throw new YError('E_CANNOT_AUTOLOAD', serviceName); | ||
@@ -913,3 +913,3 @@ }, | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: '/path/of/debug', | ||
@@ -948,3 +948,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: '/path/of/debug', | ||
@@ -983,3 +983,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: `/path/of/${serviceName}`, | ||
@@ -1028,3 +1028,3 @@ initializer: initializer( | ||
}, | ||
async () => async serviceName => ({ | ||
async () => async (serviceName) => ({ | ||
path: `/path/of/${serviceName}`, | ||
@@ -1217,3 +1217,3 @@ initializer: initializer( | ||
await Promise.all( | ||
dependenciesBuckets.map(dependencies => | ||
dependenciesBuckets.map((dependencies) => | ||
dependencies.$instance.destroy(), | ||
@@ -1295,3 +1295,3 @@ ), | ||
let shutdownResolve; | ||
const shutdownCallPromise = new Promise(resolve => { | ||
const shutdownCallPromise = new Promise((resolve) => { | ||
shutdownCallResolve = resolve; | ||
@@ -1301,3 +1301,3 @@ }); | ||
shutdownCallResolve(); | ||
return new Promise(resolve => { | ||
return new Promise((resolve) => { | ||
shutdownResolve = resolve; | ||
@@ -1355,3 +1355,3 @@ }); | ||
let shutdownResolve; | ||
const shutdownCallPromise = new Promise(resolve => { | ||
const shutdownCallPromise = new Promise((resolve) => { | ||
shutdownCallResolve = resolve; | ||
@@ -1361,3 +1361,3 @@ }); | ||
shutdownCallResolve(); | ||
return new Promise(resolve => { | ||
return new Promise((resolve) => { | ||
shutdownResolve = resolve; | ||
@@ -1364,0 +1364,0 @@ }); |
@@ -49,3 +49,3 @@ import YError from 'yerror'; | ||
function nodeIsInBatches(batches, node) { | ||
return batches.some(batch => batch.includes(node.__name)); | ||
return batches.some((batch) => batch.includes(node.__name)); | ||
} |
@@ -38,3 +38,3 @@ import YError from 'yerror'; | ||
export const ALLOWED_SPECIAL_PROPS = Object.keys(SPECIAL_PROPS).map( | ||
key => SPECIAL_PROPS[key], | ||
(key) => SPECIAL_PROPS[key], | ||
); | ||
@@ -57,3 +57,3 @@ export const DECLARATION_SEPARATOR = '>'; | ||
return [...new Set(Object.keys(from).concat(Object.keys(amend)))] | ||
.filter(prop => prop.startsWith(SPECIAL_PROPS_PREFIX)) | ||
.filter((prop) => prop.startsWith(SPECIAL_PROPS_PREFIX)) | ||
.reduce((fn, prop) => { | ||
@@ -84,3 +84,3 @@ const value = | ||
export function wrapInitializer(wrapper, baseInitializer) { | ||
return reuseSpecialProps(baseInitializer, async services => { | ||
return reuseSpecialProps(baseInitializer, async (services) => { | ||
const baseInstance = await baseInitializer(services); | ||
@@ -192,3 +192,3 @@ | ||
.map( | ||
injection => | ||
(injection) => | ||
(injection.includes('=') ? '?' : '') + | ||
@@ -201,3 +201,3 @@ injection | ||
) | ||
.filter(injection => !/[)(\][]/.test(injection)); | ||
.filter((injection) => !/[)(\][]/.test(injection)); | ||
} | ||
@@ -231,3 +231,3 @@ | ||
const sameDependencyDeclaration = currentDedupedDepencencies.find( | ||
maybeSameDependencyDeclaration => | ||
(maybeSameDependencyDeclaration) => | ||
maybeSameDependencyDeclaration.serviceName === | ||
@@ -234,0 +234,0 @@ dependencyDeclaration.serviceName, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1025048
45
11190