Comparing version 2.0.0 to 2.0.1
import { IFactories, VoidFn } from './types'; | ||
declare const createInstanceFactory: <C extends object>(factories: IFactories<C>, instances: Map<keyof C, any>, stack?: import("./unique-stack").IUniqueStack<keyof C>, initializers?: Set<VoidFn>) => <N extends keyof C>(container: C, name: N) => C[N]; | ||
declare const createInstanceFactory: <C extends object>(factories: IFactories<C>, instances: Map<keyof C, any>, stack?: import("./unique-stack").IUniqueStack<keyof C>, initializers?: VoidFn[]) => <N extends keyof C>(container: C, name: N) => C[N]; | ||
export default createInstanceFactory; |
import UniqueStack from './unique-stack'; | ||
const call = (fn) => fn(); | ||
const createInstanceFactory = (factories, instances, stack = UniqueStack(), initializers = new Set()) => (container, name) => { | ||
const createInstanceFactory = (factories, instances, stack = UniqueStack(), initializers = []) => (container, name) => { | ||
if (stack.push(name)[0] != null) { | ||
@@ -15,3 +15,3 @@ throw new Error('Cyclic dependencies couldn\'t be resolved.'); | ||
if (typeof initializer === 'function') { | ||
initializers.add(() => initializer(instance, container)); | ||
initializers.push(() => initializer(instance, container)); | ||
} | ||
@@ -23,3 +23,3 @@ if (stack.pop(name)[0] != null) { | ||
initializers.forEach(call); | ||
initializers.clear(); | ||
initializers = []; | ||
} | ||
@@ -26,0 +26,0 @@ return instance; |
import { IFactories, VoidFn } from './types'; | ||
declare const createInstanceFactory: <C extends object>(factories: IFactories<C>, instances: Map<keyof C, any>, stack?: import("./unique-stack").IUniqueStack<keyof C>, initializers?: Set<VoidFn>) => <N extends keyof C>(container: C, name: N) => C[N]; | ||
declare const createInstanceFactory: <C extends object>(factories: IFactories<C>, instances: Map<keyof C, any>, stack?: import("./unique-stack").IUniqueStack<keyof C>, initializers?: VoidFn[]) => <N extends keyof C>(container: C, name: N) => C[N]; | ||
export default createInstanceFactory; |
@@ -7,3 +7,3 @@ "use strict"; | ||
if (stack === void 0) { stack = unique_stack_1.default(); } | ||
if (initializers === void 0) { initializers = new Set(); } | ||
if (initializers === void 0) { initializers = []; } | ||
return function (container, name) { | ||
@@ -21,3 +21,3 @@ if (stack.push(name)[0] != null) { | ||
if (typeof initializer === 'function') { | ||
initializers.add(function () { return initializer(instance, container); }); | ||
initializers.push(function () { return initializer(instance, container); }); | ||
} | ||
@@ -29,3 +29,3 @@ if (stack.pop(name)[0] != null) { | ||
initializers.forEach(call); | ||
initializers.clear(); | ||
initializers = []; | ||
} | ||
@@ -32,0 +32,0 @@ return instance; |
{ | ||
"name": "true-di", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Simple Dependency Injection solution for TypeScript and Javascript", | ||
@@ -67,2 +67,3 @@ "main": "./lib/index.js", | ||
], | ||
"no-param-reassign": "off", | ||
"implicit-arrow-linebreak": "off", | ||
@@ -115,5 +116,6 @@ "import/no-unresolved": 0, | ||
"testPathIgnorePatterns": [ | ||
"/lib/', '/es/" | ||
"/lib/', '/es/", | ||
"/examples" | ||
] | ||
} | ||
} |
@@ -53,3 +53,3 @@ # true-di | ||
export const getOrders = async (req: Express.Request, res: Express.Response) => { | ||
const { ecommerceService } = req.container; | ||
const { ecommerceService } = req.injected; | ||
res.json( | ||
@@ -71,3 +71,3 @@ await ecommerceService.getOrders() | ||
app.use((req, res, next) => { | ||
req.container = container; | ||
req.injected = container; | ||
next(); | ||
@@ -80,3 +80,3 @@ }); | ||
### [Live Demo on Sandbox](https://codesandbox.io/s/express-di-example-w2gme?expanddevtools=1&fontsize=14&hidenavigation=1&initialpath=%2Forders&module=%2Fsrc%2Fcontainer.ts&moduleview=1&theme=dark) | ||
### [Live Demo on Sandbox](https://codesandbox.io/s/github/DScheglov/true-di/tree/master/examples/getting-started?fontsize=14&hidenavigation=1&initialpath=%2Forders&module=%2Fsrc%2Fcontainer.ts&theme=dark) | ||
@@ -83,0 +83,0 @@ ![Live Demo Preview](./docs/assets/image.png) |
@@ -10,3 +10,3 @@ import UniqueStack from './unique-stack'; | ||
stack = UniqueStack<keyof C>(), | ||
initializers = new Set<VoidFn>(), | ||
initializers: VoidFn[] = [], | ||
) => <N extends keyof C>(container: C, name: N): C[N] => { | ||
@@ -31,3 +31,3 @@ if (stack.push(name)[0] != null) { | ||
if (typeof initializer === 'function') { | ||
initializers.add(() => initializer(instance, container)); | ||
initializers.push(() => initializer(instance, container)); | ||
} | ||
@@ -41,3 +41,3 @@ | ||
initializers.forEach(call); | ||
initializers.clear(); | ||
initializers = []; | ||
} | ||
@@ -44,0 +44,0 @@ |
@@ -17,5 +17,4 @@ import allNames from './all-names'; | ||
name => { | ||
// eslint-disable-next-line no-param-reassign | ||
instance[name] = container[mapping[name]] as any; | ||
}, | ||
); |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
0
50319
1063