ts-ioc-container 26.1.0 → 26.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -116,7 +116,9 @@ import {
116
116
  provider,
117
117
  ReflectionInjector,
118
118
  Registration,
119
+ by,
119
120
  } from 'ts-ioc-container';
121
+ import { IContainer, inject } from 'ts-ioc-container';
120
122
 
121
123
  @key('ILogger')
122
124
  @provider(singleton(), tags('child'))
@@ -130,6 +132,31 @@ describe('Scopes', function () {
130
132
  expect(child.resolve('ILogger')).toBe(child.resolve('ILogger'));
131
133
  expect(() => root.resolve('ILogger')).toThrow(DependencyNotFoundError);
132
134
  });
135
+
136
+ it('should inject current scope', function () {
137
+ const root = new Container(new ReflectionInjector(), { tags: ['root'] }).use(Registration.fromClass(Logger));
138
+
139
+ class App {
140
+ constructor(@inject(by.currentScope) public scope: IContainer) {}
141
+ }
142
+
143
+ const app = root.resolve(App);
144
+
145
+ expect(app.scope).toBe(root);
146
+ });
147
+
148
+ it('should inject new scope', function () {
149
+ const root = new Container(new ReflectionInjector(), { tags: ['root'] }).use(Registration.fromClass(Logger));
150
+
151
+ class App {
152
+ constructor(@inject(by.createScope('child')) public scope: IContainer) {}
153
+ }
154
+
155
+ const app = root.resolve(App);
156
+
157
+ expect(app.scope).not.toBe(root);
158
+ expect(app.scope.hasTag('child')).toBe(true);
159
+ });
133
160
  });
134
161
 
135
162
  ```
package/cjm/by.d.ts CHANGED
@@ -9,4 +9,6 @@ export declare const by: {
9
9
  keys: (...keys: InjectionToken[]) => (с: IContainer, ...args: unknown[]) => unknown[];
10
10
  key: <T>(key: InjectionToken<T>, ...deps: unknown[]) => (c: IContainer, ...args: unknown[]) => T;
11
11
  instances: (predicate?: InstancePredicate) => (l: IContainer) => unknown[];
12
+ currentScope: (l: IContainer) => IContainer;
13
+ createScope: (...tags: string[]) => (l: IContainer) => IContainer;
12
14
  };
package/cjm/by.js CHANGED
@@ -11,5 +11,7 @@ exports.by = {
11
11
  keys: (...keys) => (с, ...args) => keys.map((t) => с.resolve(t, ...args)),
12
12
  key: (key, ...deps) => (c, ...args) => c.resolve(key, ...deps, ...args),
13
13
  instances: (predicate = exports.all) => (l) => l.getInstances().filter(predicate),
14
+ currentScope: (l) => l,
15
+ createScope: (...tags) => (l) => l.createScope(...tags),
14
16
  };
15
17
  //# sourceMappingURL=by.js.map
package/cjm/by.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"by.js","sourceRoot":"","sources":["../lib/by.ts"],"names":[],"mappings":";;;AAGO,MAAM,GAAG,GAAsB,GAAG,EAAE,CAAC,IAAI,CAAC;AAApC,QAAA,GAAG,OAAiC;AAEpC,QAAA,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,IAAI,EACF,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9G,GAAG,EACD,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAChH;IAED,IAAI,EACF,CAAC,GAAG,IAAsB,EAAE,EAAE,CAC9B,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,GAAG,EACD,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEvC,SAAS,EACP,CAAC,YAA+B,WAAG,EAAE,EAAE,CACvC,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"by.js","sourceRoot":"","sources":["../lib/by.ts"],"names":[],"mappings":";;;AAGO,MAAM,GAAG,GAAsB,GAAG,EAAE,CAAC,IAAI,CAAC;AAApC,QAAA,GAAG,OAAiC;AAEpC,QAAA,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,IAAI,EACF,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9G,GAAG,EACD,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAChH;IAED,IAAI,EACF,CAAC,GAAG,IAAsB,EAAE,EAAE,CAC9B,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,GAAG,EACD,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEvC,SAAS,EACP,CAAC,YAA+B,WAAG,EAAE,EAAE,CACvC,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;IAEtC,YAAY,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC;IAElC,WAAW,EACT,CAAC,GAAG,IAAc,EAAE,EAAE,CACtB,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAC3B,CAAC"}
package/esm/by.d.ts CHANGED
@@ -9,4 +9,6 @@ export declare const by: {
9
9
  keys: (...keys: InjectionToken[]) => (с: IContainer, ...args: unknown[]) => unknown[];
10
10
  key: <T>(key: InjectionToken<T>, ...deps: unknown[]) => (c: IContainer, ...args: unknown[]) => T;
11
11
  instances: (predicate?: InstancePredicate) => (l: IContainer) => unknown[];
12
+ currentScope: (l: IContainer) => IContainer;
13
+ createScope: (...tags: string[]) => (l: IContainer) => IContainer;
12
14
  };
package/esm/by.js CHANGED
@@ -11,5 +11,7 @@ exports.by = {
11
11
  keys: (...keys) => (с, ...args) => keys.map((t) => с.resolve(t, ...args)),
12
12
  key: (key, ...deps) => (c, ...args) => c.resolve(key, ...deps, ...args),
13
13
  instances: (predicate = exports.all) => (l) => l.getInstances().filter(predicate),
14
+ currentScope: (l) => l,
15
+ createScope: (...tags) => (l) => l.createScope(...tags),
14
16
  };
15
17
  //# sourceMappingURL=by.js.map
package/esm/by.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"by.js","sourceRoot":"","sources":["../lib/by.ts"],"names":[],"mappings":";;;AAGO,MAAM,GAAG,GAAsB,GAAG,EAAE,CAAC,IAAI,CAAC;AAApC,QAAA,GAAG,OAAiC;AAEpC,QAAA,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,IAAI,EACF,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9G,GAAG,EACD,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAChH;IAED,IAAI,EACF,CAAC,GAAG,IAAsB,EAAE,EAAE,CAC9B,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,GAAG,EACD,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEvC,SAAS,EACP,CAAC,YAA+B,WAAG,EAAE,EAAE,CACvC,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"by.js","sourceRoot":"","sources":["../lib/by.ts"],"names":[],"mappings":";;;AAGO,MAAM,GAAG,GAAsB,GAAG,EAAE,CAAC,IAAI,CAAC;AAApC,QAAA,GAAG,OAAiC;AAEpC,QAAA,EAAE,GAAG;IAChB,KAAK,EAAE;QACL,IAAI,EACF,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAE9G,GAAG,EACD,CAAC,GAAG,OAAwB,EAAE,EAAE,CAChC,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;KAChH;IAED,IAAI,EACF,CAAC,GAAG,IAAsB,EAAE,EAAE,CAC9B,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1C,GAAG,EACD,CAAI,GAAsB,EAAE,GAAG,IAAe,EAAE,EAAE,CAClD,CAAC,CAAa,EAAE,GAAG,IAAe,EAAE,EAAE,CACpC,CAAC,CAAC,OAAO,CAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAEvC,SAAS,EACP,CAAC,YAA+B,WAAG,EAAE,EAAE,CACvC,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;IAEtC,YAAY,EAAE,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC;IAElC,WAAW,EACT,CAAC,GAAG,IAAc,EAAE,EAAE,CACtB,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;CAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-ioc-container",
3
- "version": "26.1.0",
3
+ "version": "26.2.0",
4
4
  "description": "Typescript IoC container",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -58,5 +58,5 @@
58
58
  "ts-node": "^10.9.1",
59
59
  "typescript": "4.4.3"
60
60
  },
61
- "gitHead": "f11bf960fbef9a1afba72a6b18ae8f61937d9444"
61
+ "gitHead": "c030d8aa5d7a39c9d40304f2d49c0e2a80a6bcac"
62
62
  }