+6
-3
@@ -27,2 +27,5 @@ "use strict"; | ||
| const { resolutionStack } = this; | ||
| if (resolutionStack.includes(type)) { | ||
| throw new DIError(`Circular dependency detected: ${[...resolutionStack, type].map((t) => t.name).join(' -> ')}`); | ||
| } | ||
| const metadata = instances.get(type); | ||
@@ -40,5 +43,5 @@ if (!metadata) { | ||
| const paramTypes = (Reflect.getMetadata('design:paramtypes', type) ?? []); | ||
| const dependencies = paramTypes.map((paramType, index) => { | ||
| if (paramType === undefined) { | ||
| throw new DIError(`Circular dependency detected in ${type.name} at index ${index}.\n${resolutionStack.map((t) => t.name).join(' -> ')}\n`); | ||
| const dependencies = paramTypes.map((paramType) => { | ||
| if (paramType === undefined || paramType === Object) { | ||
| return undefined; | ||
| } | ||
@@ -45,0 +48,0 @@ return this.get(paramType); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"di.js","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"di.js","sourceRoot":"","sources":["../src/di.ts"],"names":[],"mappings":"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"} |
+8
-4
| { | ||
| "name": "@n8n/di", | ||
| "version": "0.11.0", | ||
| "version": "0.12.0", | ||
| "main": "dist/di.js", | ||
@@ -16,2 +16,6 @@ "module": "src/di.ts", | ||
| "devDependencies": { | ||
| "@vitest/coverage-v8": "4.1.1", | ||
| "vitest": "^4.1.1", | ||
| "vitest-mock-extended": "^3.1.0", | ||
| "@n8n/vitest-config": "1.11.0", | ||
| "@n8n/typescript-config": "1.4.0" | ||
@@ -39,6 +43,6 @@ }, | ||
| "watch": "tsc -p tsconfig.build.json --watch", | ||
| "test": "jest", | ||
| "test:unit": "jest", | ||
| "test:dev": "jest --watch" | ||
| "test": "vitest run", | ||
| "test:unit": "vitest run", | ||
| "test:dev": "vitest --silent=false" | ||
| } | ||
| } |
Sorry, the diff of this file is not supported yet
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
Unidentified License
LicenseSomething that seems like a license was found, but its contents could not be matched with a known license.
49696
0.65%96
3.23%5
400%