@joist/di 3.0.0-next.13 → 3.0.0-next.14

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
@@ -21,9 +21,7 @@ class FooService {
21
21
  }
22
22
 
23
23
  // classes must be decorated with @injectable to use the inject function
24
- @injectable({
25
- provideInRoot: true // classes marked with the "service" flag will attempt to find a root injector
26
- })
24
+ @injectable
27
25
  class BarService {
28
26
  foo = inject(FooService);
29
27
 
@@ -32,15 +30,10 @@ class BarService {
32
30
  }
33
31
  }
34
32
 
35
- @injectable()
33
+ @injectable
36
34
  class BazService {
37
35
  #bar = inject(BarService);
38
36
 
39
- constructor() {
40
- // will throw error
41
- console.log(this.bar().sayHello())
42
- }
43
-
44
37
  // services cannot be accessed in the constructor.
45
38
  // the onInject callback will be called when injectors have resolved
46
39
  onInject() {
@@ -64,8 +57,9 @@ class Colors {
64
57
  secodnary = 'green';
65
58
  }
66
59
 
67
- @injectable({
68
- providers: [
60
+ @injectable
61
+ class ColorCtx extends HTMLElement {
62
+ static providers = [
69
63
  {
70
64
  provide: Colors,
71
65
  use: class implements Colors {
@@ -74,10 +68,9 @@ class Colors {
74
68
  },
75
69
  },
76
70
  ]
77
- })
78
- class ColorCtx extends HTMLElement { }
71
+ }
79
72
 
80
- @injectable()
73
+ @injectable
81
74
  class MyElement extends HTMLElement {
82
75
  #colors = inject(Colors);
83
76
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@joist/di",
3
- "version": "3.0.0-next.13",
3
+ "version": "3.0.0-next.14",
4
4
  "main": "./target/lib.js",
5
5
  "module": "./target/lib.js",
6
6
  "exports": {
@@ -11,9 +11,7 @@ describe('environment', () => {
11
11
  });
12
12
  it('should use the root injector when creating services', async () => {
13
13
  let MyService = (() => {
14
- let _classDecorators = [injectable({
15
- provideInRoot: true,
16
- })];
14
+ let _classDecorators = [injectable];
17
15
  let _classDescriptor;
18
16
  let _classExtraInitializers = [];
19
17
  let _classThis;
@@ -27,7 +25,7 @@ describe('environment', () => {
27
25
  return MyService = _classThis;
28
26
  })();
29
27
  let MyElement = (() => {
30
- let _classDecorators_1 = [injectable()];
28
+ let _classDecorators_1 = [injectable];
31
29
  let _classDescriptor_1;
32
30
  let _classExtraInitializers_1 = [];
33
31
  let _classThis_1;
@@ -1 +1 @@
1
- {"version":3,"file":"environment.test.js","sourceRoot":"","sources":["../../src/lib/environment.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAE5B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YAI7D,SAAS;oCAHd,UAAU,CAAC;oBACV,aAAa,EAAE,IAAI;iBACpB,CAAC;;;;gBACI,SAAS;;oBAAf,4IAAkB;oBAAZ,SAAS;oBAAT,uDAAS;;;mBAAT,SAAS;;YAGT,SAAS;sCADd,UAAU,EAAE;;;;gBACP,SAAS,QAAC,SAAQ,WAAW;;oBAAnC,kJAEC;oBAFK,SAAS;oBAAT,2DAAS;;gBACb,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;;mBADnB,SAAS;;QAIf,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iBAAiB,CAAC,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"environment.test.js","sourceRoot":"","sources":["../../src/lib/environment.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAE5B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YAE7D,SAAS;oCADd,UAAU;;;;gBACL,SAAS;;oBAAf,4IAAmB;oBAAb,SAAS;oBAAT,uDAAS;;;mBAAT,SAAS;;YAGT,SAAS;sCADd,UAAU;;;;gBACL,SAAS,QAAC,SAAQ,WAAW;;oBAAnC,kJAEC;oBAFK,SAAS;oBAAT,2DAAS;;gBACb,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;;mBADnB,SAAS;;QAIf,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iBAAiB,CAAC,CAAC;QAE3D,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { ProviderToken } from './provider.js';
2
- import { Injectable, Injected } from './injector.js';
2
+ import { Injectable } from './injector.js';
3
+ export type Injected<T> = () => T;
3
4
  export declare function inject<This extends Injectable, T extends object>(token: ProviderToken<T>): Injected<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,MAAM,CACpB,KAAuB;IAEvB,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAE1D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6JAA6J,CACrK,CAAC;SACH;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,MAAM,CACpB,KAAuB;IAEvB,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;YACjC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAE1D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,6JAA6J,CACrK,CAAC;SACH;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC;AACJ,CAAC"}
@@ -8,7 +8,7 @@ describe('inject', () => {
8
8
  class HelloService {
9
9
  }
10
10
  let HelloWorld = (() => {
11
- let _classDecorators = [injectable()];
11
+ let _classDecorators = [injectable];
12
12
  let _classDescriptor;
13
13
  let _classExtraInitializers = [];
14
14
  let _classThis;
@@ -30,7 +30,7 @@ describe('inject', () => {
30
30
  value = '1';
31
31
  }
32
32
  let BarService = (() => {
33
- let _classDecorators_1 = [injectable()];
33
+ let _classDecorators_1 = [injectable];
34
34
  let _classDescriptor_1;
35
35
  let _classExtraInitializers_1 = [];
36
36
  let _classThis_1;
@@ -62,7 +62,7 @@ describe('inject', () => {
62
62
  value = '1';
63
63
  }
64
64
  let BarService = (() => {
65
- let _classDecorators_2 = [injectable()];
65
+ let _classDecorators_2 = [injectable];
66
66
  let _classDescriptor_2;
67
67
  let _classExtraInitializers_2 = [];
68
68
  let _classThis_2;
@@ -1 +1 @@
1
- {"version":3,"file":"inject.test.js","sourceRoot":"","sources":["../../src/lib/inject.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,YAAY;SAAG;YAGf,UAAU;oCADf,UAAU,EAAE;;;;gBACP,UAAU,QAAC,SAAQ,WAAW;;oBAApC,4IAEC;oBAFK,UAAU;oBAAV,uDAAU;;gBACd,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;mBADzB,UAAU;;QAIhB,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,UAAU;YACd,KAAK,GAAG,GAAG,CAAC;SACb;YAGK,UAAU;sCADf,UAAU,EAAE;;;;gBACP,UAAU;;oBAAhB,kJAMC;oBANK,UAAU;oBAAV,2DAAU;;gBACd,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBAEzB;oBACE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;;mBALG,UAAU;;QAQhB,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE9B,IAAI;YACF,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,GAAY,CAAC;YAE3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAC5B,uKAAuK,CACxK,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,UAAU;YACd,KAAK,GAAG,GAAG,CAAC;SACb;YAGK,UAAU;sCADf,UAAU,EAAE;;;;gBACP,UAAU;;oBAAhB,kJAEC;oBAFK,UAAU;oBAAV,2DAAU;;gBACd,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;;mBADrB,UAAU;;QAIhB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B;gBACE,OAAO,EAAE,UAAU;gBACnB,GAAG,EAAE,KAAM,SAAQ,UAAU;oBAC3B,KAAK,GAAG,KAAK,CAAC;iBACf;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"inject.test.js","sourceRoot":"","sources":["../../src/lib/inject.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;QACrB,MAAM,YAAY;SAAI;YAGhB,UAAU;oCADf,UAAU;;;;gBACL,UAAU,QAAC,SAAQ,WAAW;;oBAApC,4IAEC;oBAFK,UAAU;oBAAV,uDAAU;;gBACd,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;;mBADzB,UAAU;;QAIhB,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,UAAU;YACd,KAAK,GAAG,GAAG,CAAC;SACb;YAGK,UAAU;sCADf,UAAU;;;;gBACL,UAAU;;oBAAhB,kJAMC;oBANK,UAAU;oBAAV,2DAAU;;gBACd,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;gBAEzB;oBACE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACb,CAAC;;mBALG,UAAU;;QAQhB,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE9B,IAAI;YACF,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAEvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACvC;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,KAAK,GAAG,GAAY,CAAC;YAE3B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAC5B,uKAAuK,CACxK,CAAC;SACH;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,UAAU;YACd,KAAK,GAAG,GAAG,CAAC;SACb;YAGK,UAAU;sCADf,UAAU;;;;gBACL,UAAU;;oBAAhB,kJAEC;oBAFK,UAAU;oBAAV,2DAAU;;gBACd,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;;mBADrB,UAAU;;QAIhB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC;YAC1B;gBACE,OAAO,EAAE,UAAU;gBACnB,GAAG,EAAE,KAAM,SAAQ,UAAU;oBAC3B,KAAK,GAAG,KAAK,CAAC;iBACf;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,9 +1,6 @@
1
- import { Provider, ProviderToken } from './provider.js';
1
+ import { ProviderToken } from './provider.js';
2
2
  import { Injector } from './injector.js';
3
- export declare function injectable<T extends ProviderToken<any>>(def?: {
4
- provideInRoot?: boolean;
5
- providers?: Provider<any>[];
6
- }): (Base: T, _: unknown) => {
3
+ export declare function injectable<T extends ProviderToken<any>>(Base: T, _: unknown): {
7
4
  new (..._: any[]): {
8
5
  [x: string]: any;
9
6
  injector$$: Injector;
@@ -11,4 +8,5 @@ export declare function injectable<T extends ProviderToken<any>>(def?: {
11
8
  connectedCallback(): void;
12
9
  disconnectedCallback(): void;
13
10
  };
11
+ providers?: import("./provider.js").Provider<any>[] | undefined;
14
12
  } & T;
@@ -1,21 +1,15 @@
1
- import { Injector, rootServices } from './injector.js';
1
+ import { Injector } from './injector.js';
2
2
  import { environment } from './environment.js';
3
- export function injectable(def = {}) {
4
- return function (Base, _) {
5
- const token = withInjector(Base, def.providers);
6
- if (def.provideInRoot) {
7
- rootServices.add(token);
8
- }
9
- return token;
10
- };
3
+ export function injectable(Base, _) {
4
+ return withInjector(Base);
11
5
  }
12
6
  /**
13
7
  * This mixin is applied by the @injectable decorator.
14
8
  * Id defines an instance injector and registers custom element lifecycle hooks
15
9
  */
16
- function withInjector(Base, providers = []) {
10
+ function withInjector(Base) {
17
11
  return class InjectableNode extends Base {
18
- injector$$ = new Injector(providers);
12
+ injector$$ = new Injector(Base.providers);
19
13
  constructor(..._) {
20
14
  super();
21
15
  if (this instanceof HTMLElement) {
@@ -1 +1 @@
1
- {"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../src/lib/injectable.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,UAAU,CACxB,MAGI,EAAE;IAEN,OAAO,UAAU,IAAO,EAAE,CAAU;QAClC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,GAAG,CAAC,aAAa,EAAE;YACrB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAA+B,IAAO,EAAE,YAA6B,EAAE;IAC1F,OAAO,MAAM,cAAe,SAAQ,IAAI;QACtC,UAAU,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErC,YAAY,GAAG,CAAQ;YACrB,KAAK,EAAE,CAAC;YAER,IAAI,IAAI,YAAY,WAAW,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;oBACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAE3C,IAAI,cAAc,KAAK,IAAI,EAAE;wBAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;qBAC3C;yBAAM;wBACL,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;qBAC1C;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;QAED,QAAQ;YACN,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,KAAK,CAAC,QAAQ,EAAE,CAAC;aAClB;QACH,CAAC;QAED,iBAAiB;YACf,IAAI,IAAI,YAAY,WAAW,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,iBAAiB,EAAE;oBAC3B,KAAK,CAAC,iBAAiB,EAAE,CAAC;iBAC3B;aACF;QACH,CAAC;QAED,oBAAoB;YAClB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAErC,IAAI,KAAK,CAAC,oBAAoB,EAAE;gBAC9B,KAAK,CAAC,oBAAoB,EAAE,CAAC;aAC9B;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAQ;IAChC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;IAE9B,mBAAmB;IACnB,2CAA2C;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,YAAY,QAAQ,EAAE;YAC/D,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../src/lib/injectable.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,UAAU,CAA+B,IAAO,EAAE,CAAU;IAC1E,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAA+B,IAAO;IACzD,OAAO,MAAM,cAAe,SAAQ,IAAI;QACtC,UAAU,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,YAAY,GAAG,CAAQ;YACrB,KAAK,EAAE,CAAC;YAER,IAAI,IAAI,YAAY,WAAW,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;oBACxC,MAAM,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAE3C,IAAI,cAAc,KAAK,IAAI,EAAE;wBAC3B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;qBAC3C;yBAAM;wBACL,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;qBAC1C;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;QAED,QAAQ;YACN,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,KAAK,CAAC,QAAQ,EAAE,CAAC;aAClB;QACH,CAAC;QAED,iBAAiB;YACf,IAAI,IAAI,YAAY,WAAW,EAAE;gBAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,iBAAiB,EAAE;oBAC3B,KAAK,CAAC,iBAAiB,EAAE,CAAC;iBAC3B;aACF;QACH,CAAC;QAED,oBAAoB;YAClB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAErC,IAAI,KAAK,CAAC,oBAAoB,EAAE;gBAC9B,KAAK,CAAC,oBAAoB,EAAE,CAAC;aAC9B;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAQ;IAChC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;IAE9B,mBAAmB;IACnB,2CAA2C;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,YAAY,QAAQ,EAAE;YAC/D,OAAO,IAAI,CAAC,UAAU,CAAC;SACxB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -10,7 +10,7 @@ describe('@injectable()', () => {
10
10
  class Bar {
11
11
  }
12
12
  let MyElement = (() => {
13
- let _classDecorators = [injectable()];
13
+ let _classDecorators = [injectable];
14
14
  let _classDescriptor;
15
15
  let _classExtraInitializers = [];
16
16
  let _classThis;
@@ -35,9 +35,7 @@ describe('@injectable()', () => {
35
35
  class Bar extends Foo {
36
36
  }
37
37
  let MyElement = (() => {
38
- let _classDecorators_1 = [injectable({
39
- providers: [{ provide: Foo, use: Bar }],
40
- })];
38
+ let _classDecorators_1 = [injectable];
41
39
  let _classDescriptor_1;
42
40
  let _classExtraInitializers_1 = [];
43
41
  let _classThis_1;
@@ -45,9 +43,12 @@ describe('@injectable()', () => {
45
43
  static {
46
44
  __esDecorate(null, _classDescriptor_1 = { value: this }, _classDecorators_1, { kind: "class", name: this.name }, null, _classExtraInitializers_1);
47
45
  MyElement = _classThis_1 = _classDescriptor_1.value;
48
- __runInitializers(_classThis_1, _classExtraInitializers_1);
49
46
  }
47
+ static providers = [{ provide: Foo, use: Bar }];
50
48
  foo = inject(Foo);
49
+ static {
50
+ __runInitializers(_classThis_1, _classExtraInitializers_1);
51
+ }
51
52
  };
52
53
  return MyElement = _classThis_1;
53
54
  })();
@@ -59,7 +60,7 @@ describe('@injectable()', () => {
59
60
  class A {
60
61
  }
61
62
  let B = (() => {
62
- let _classDecorators_2 = [injectable()];
63
+ let _classDecorators_2 = [injectable];
63
64
  let _classDescriptor_2;
64
65
  let _classExtraInitializers_2 = [];
65
66
  let _classThis_2;
@@ -80,9 +81,7 @@ describe('@injectable()', () => {
80
81
  });
81
82
  it('should handle parent HTML Injectors', async () => {
82
83
  let A = (() => {
83
- let _classDecorators_3 = [injectable({
84
- provideInRoot: true,
85
- })];
84
+ let _classDecorators_3 = [injectable];
86
85
  let _classDescriptor_3;
87
86
  let _classExtraInitializers_3 = [];
88
87
  let _classThis_3;
@@ -96,9 +95,7 @@ describe('@injectable()', () => {
96
95
  return A = _classThis_3;
97
96
  })();
98
97
  let B = (() => {
99
- let _classDecorators_4 = [injectable({
100
- provideInRoot: true,
101
- })];
98
+ let _classDecorators_4 = [injectable];
102
99
  let _classDescriptor_4;
103
100
  let _classExtraInitializers_4 = [];
104
101
  let _classThis_4;
@@ -115,12 +112,7 @@ describe('@injectable()', () => {
115
112
  class AltA {
116
113
  }
117
114
  let Parent = (() => {
118
- let _classDecorators_5 = [injectable({
119
- providers: [
120
- { provide: B, use: B },
121
- { provide: A, use: AltA },
122
- ],
123
- })];
115
+ let _classDecorators_5 = [injectable];
124
116
  let _classDescriptor_5;
125
117
  let _classExtraInitializers_5 = [];
126
118
  let _classThis_5;
@@ -128,13 +120,19 @@ describe('@injectable()', () => {
128
120
  static {
129
121
  __esDecorate(null, _classDescriptor_5 = { value: this }, _classDecorators_5, { kind: "class", name: this.name }, null, _classExtraInitializers_5);
130
122
  Parent = _classThis_5 = _classDescriptor_5.value;
123
+ }
124
+ static providers = [
125
+ { provide: B, use: B },
126
+ { provide: A, use: AltA },
127
+ ];
128
+ static {
131
129
  __runInitializers(_classThis_5, _classExtraInitializers_5);
132
130
  }
133
131
  };
134
132
  return Parent = _classThis_5;
135
133
  })();
136
134
  let Child = (() => {
137
- let _classDecorators_6 = [injectable()];
135
+ let _classDecorators_6 = [injectable];
138
136
  let _classDescriptor_6;
139
137
  let _classExtraInitializers_6 = [];
140
138
  let _classThis_6;
@@ -164,9 +162,7 @@ describe('@injectable()', () => {
164
162
  class AltA {
165
163
  }
166
164
  let Ctx1 = (() => {
167
- let _classDecorators_7 = [injectable({
168
- providers: [{ provide: A, use: A }],
169
- })];
165
+ let _classDecorators_7 = [injectable];
170
166
  let _classDescriptor_7;
171
167
  let _classExtraInitializers_7 = [];
172
168
  let _classThis_7;
@@ -174,15 +170,16 @@ describe('@injectable()', () => {
174
170
  static {
175
171
  __esDecorate(null, _classDescriptor_7 = { value: this }, _classDecorators_7, { kind: "class", name: this.name }, null, _classExtraInitializers_7);
176
172
  Ctx1 = _classThis_7 = _classDescriptor_7.value;
173
+ }
174
+ static providers = [{ provide: A, use: A }];
175
+ static {
177
176
  __runInitializers(_classThis_7, _classExtraInitializers_7);
178
177
  }
179
178
  };
180
179
  return Ctx1 = _classThis_7;
181
180
  })();
182
181
  let Ctx2 = (() => {
183
- let _classDecorators_8 = [injectable({
184
- providers: [{ provide: A, use: AltA }],
185
- })];
182
+ let _classDecorators_8 = [injectable];
186
183
  let _classDescriptor_8;
187
184
  let _classExtraInitializers_8 = [];
188
185
  let _classThis_8;
@@ -190,13 +187,16 @@ describe('@injectable()', () => {
190
187
  static {
191
188
  __esDecorate(null, _classDescriptor_8 = { value: this }, _classDecorators_8, { kind: "class", name: this.name }, null, _classExtraInitializers_8);
192
189
  Ctx2 = _classThis_8 = _classDescriptor_8.value;
190
+ }
191
+ static providers = [{ provide: A, use: AltA }];
192
+ static {
193
193
  __runInitializers(_classThis_8, _classExtraInitializers_8);
194
194
  }
195
195
  };
196
196
  return Ctx2 = _classThis_8;
197
197
  })();
198
198
  let Child = (() => {
199
- let _classDecorators_9 = [injectable()];
199
+ let _classDecorators_9 = [injectable];
200
200
  let _classDescriptor_9;
201
201
  let _classExtraInitializers_9 = [];
202
202
  let _classThis_9;
@@ -1 +1 @@
1
- {"version":3,"file":"injectable.test.js","sourceRoot":"","sources":["../../src/lib/injectable.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injectable.test.js","sourceRoot":"","sources":["../../src/lib/injectable.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,29 @@
1
1
  import { ProviderToken, Provider } from './provider.js';
2
- export type Injected<T> = () => T;
3
2
  export type Injectable = object & {
4
3
  injector$$?: Injector;
5
4
  onInject?(): void;
6
5
  };
7
- export declare const rootServices: WeakSet<ProviderToken<any>>;
6
+ /**
7
+ * Injectors create and store instances of services.
8
+ * A service is any constructable class.
9
+ * When calling Injector.get, the injector will resolve as following.
10
+ *
11
+ * 1. Do I have a cached instance locally?
12
+ * 2. Do I have a local provider definition for the token?
13
+ * 3. Do I have a parent? Check parent for 1 and 2
14
+ * 5. All clear, go ahead and construct and cache the requested service
15
+ *
16
+ * RootInjector --> InjectorA --> InjectorB
17
+ * |------> InjectorC
18
+ * |------> InjectorD --> InjectorE
19
+ *
20
+ * in the above tree, if InjectorE requests a service, it will navigate up to the RootInjector and cached.
21
+ * If Inject B then requests the same token, it will recieve the same cached instance,
22
+ */
8
23
  export declare class Injector {
9
24
  #private;
10
25
  providers: Provider<any>[];
11
26
  constructor(providers?: Provider<any>[], parent?: Injector);
12
- has<T>(token: ProviderToken<T>): boolean;
13
27
  get<T extends Injectable>(token: ProviderToken<T>): T;
14
28
  setParent(parent: Injector | undefined): void;
15
29
  clear(): void;
@@ -1,22 +1,30 @@
1
- // Track which dependencies are services.
2
- export const rootServices = new WeakSet();
1
+ /**
2
+ * Injectors create and store instances of services.
3
+ * A service is any constructable class.
4
+ * When calling Injector.get, the injector will resolve as following.
5
+ *
6
+ * 1. Do I have a cached instance locally?
7
+ * 2. Do I have a local provider definition for the token?
8
+ * 3. Do I have a parent? Check parent for 1 and 2
9
+ * 5. All clear, go ahead and construct and cache the requested service
10
+ *
11
+ * RootInjector --> InjectorA --> InjectorB
12
+ * |------> InjectorC
13
+ * |------> InjectorD --> InjectorE
14
+ *
15
+ * in the above tree, if InjectorE requests a service, it will navigate up to the RootInjector and cached.
16
+ * If Inject B then requests the same token, it will recieve the same cached instance,
17
+ */
3
18
  export class Injector {
4
19
  providers;
20
+ // ke track of isntances. One Token can have one instance
5
21
  #instances = new WeakMap();
6
22
  #parent = undefined;
7
23
  constructor(providers = [], parent) {
8
24
  this.providers = providers;
9
- if (parent) {
10
- this.#parent = parent;
11
- }
12
- }
13
- has(token) {
14
- const hasLocally = this.#instances.has(token) || !!this.#findProvider(token);
15
- if (hasLocally) {
16
- return true;
17
- }
18
- return this.#parent ? this.#parent.has(token) : false;
25
+ this.setParent(parent);
19
26
  }
27
+ // resolves and retuns and instance of the requested service
20
28
  get(token) {
21
29
  // check for a local instance
22
30
  if (this.#instances.has(token)) {
@@ -29,9 +37,7 @@ export class Injector {
29
37
  }
30
38
  // check for a parent and attempt to get there
31
39
  if (this.#parent) {
32
- if (this.#parent.has(token) || rootServices.has(token)) {
33
- return this.#parent.get(token);
34
- }
40
+ return this.#parent.get(token);
35
41
  }
36
42
  return this.#createAndCache(token);
37
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"AASA,yCAAyC;AACzC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,EAAsB,CAAC;AAE9D,MAAM,OAAO,QAAQ;IAIA;IAHnB,UAAU,GAAG,IAAI,OAAO,EAA2B,CAAC;IACpD,OAAO,GAAyB,SAAS,CAAC;IAE1C,YAAmB,YAA6B,EAAE,EAAE,MAAiB;QAAlD,cAAS,GAAT,SAAS,CAAsB;QAChD,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;SACvB;IACH,CAAC;IAED,GAAG,CAAI,KAAuB;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE7E,IAAI,UAAU,EAAE;YACd,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACxD,CAAC;IAED,GAAG,CAAuB,KAAuB;QAC/C,6BAA6B;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;SACpC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE3C,kCAAkC;QAClC,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9C;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBACtD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAChC;SACF;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,MAA4B;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,eAAe,CAAuB,KAAuB;QAC3D,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErC,IAAI,QAAQ,CAAC,UAAU,EAAE;YACvB,8CAA8C;YAC9C,+EAA+E;YAC/E,2EAA2E;YAC3E,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEpC,6EAA6E;YAC7E,uEAAuE;YACvE,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,KAAyB;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,QAAQ;IAMA;IALnB,yDAAyD;IACzD,UAAU,GAAG,IAAI,OAAO,EAA2B,CAAC;IAEpD,OAAO,GAAyB,SAAS,CAAC;IAE1C,YAAmB,YAA6B,EAAE,EAAE,MAAiB;QAAlD,cAAS,GAAT,SAAS,CAAsB;QAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,CAAC;IAED,4DAA4D;IAC5D,GAAG,CAAuB,KAAuB;QAC/C,6BAA6B;QAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;SACpC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE3C,kCAAkC;QAClC,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAI,CAAC,eAAe,CAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC9C;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,SAAS,CAAC,MAA4B;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,eAAe,CAAuB,KAAuB;QAC3D,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAErC,IAAI,QAAQ,CAAC,UAAU,EAAE;YACvB,8CAA8C;YAC9C,+EAA+E;YAC/E,2EAA2E;YAC3E,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAEpC,6EAA6E;YAC7E,uEAAuE;YACvE,IAAI,QAAQ,CAAC,QAAQ,EAAE;gBACrB,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,aAAa,CAAC,KAAyB;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,EAAE;gBACvC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC1B;SACF;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
@@ -17,7 +17,7 @@ describe('Injector', () => {
17
17
  class B {
18
18
  }
19
19
  let MyService = (() => {
20
- let _classDecorators = [injectable()];
20
+ let _classDecorators = [injectable];
21
21
  let _classDescriptor;
22
22
  let _classExtraInitializers = [];
23
23
  let _classThis;
@@ -41,7 +41,7 @@ describe('Injector', () => {
41
41
  class A {
42
42
  }
43
43
  let B = (() => {
44
- let _classDecorators_1 = [injectable()];
44
+ let _classDecorators_1 = [injectable];
45
45
  let _classDescriptor_1;
46
46
  let _classExtraInitializers_1 = [];
47
47
  let _classThis_1;
@@ -56,7 +56,7 @@ describe('Injector', () => {
56
56
  return B = _classThis_1;
57
57
  })();
58
58
  let C = (() => {
59
- let _classDecorators_2 = [injectable()];
59
+ let _classDecorators_2 = [injectable];
60
60
  let _classDescriptor_2;
61
61
  let _classExtraInitializers_2 = [];
62
62
  let _classThis_2;
@@ -71,7 +71,7 @@ describe('Injector', () => {
71
71
  return C = _classThis_2;
72
72
  })();
73
73
  let D = (() => {
74
- let _classDecorators_3 = [injectable()];
74
+ let _classDecorators_3 = [injectable];
75
75
  let _classDescriptor_3;
76
76
  let _classExtraInitializers_3 = [];
77
77
  let _classThis_3;
@@ -86,7 +86,7 @@ describe('Injector', () => {
86
86
  return D = _classThis_3;
87
87
  })();
88
88
  let E = (() => {
89
- let _classDecorators_4 = [injectable()];
89
+ let _classDecorators_4 = [injectable];
90
90
  let _classDescriptor_4;
91
91
  let _classExtraInitializers_4 = [];
92
92
  let _classThis_4;
@@ -108,7 +108,7 @@ describe('Injector', () => {
108
108
  class A {
109
109
  }
110
110
  let B = (() => {
111
- let _classDecorators_5 = [injectable()];
111
+ let _classDecorators_5 = [injectable];
112
112
  let _classDescriptor_5;
113
113
  let _classExtraInitializers_5 = [];
114
114
  let _classThis_5;
@@ -1 +1 @@
1
- {"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export type ProviderToken<T> = {
2
+ providers?: Provider<any>[];
2
3
  new (...args: any[]): T;
3
4
  };
4
5
  export interface Provider<T> {
package/target/lib.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- export { Injector, Injectable, Injected } from './lib/injector.js';
1
+ export { Injector, Injectable } from './lib/injector.js';
2
2
  export { Provider, ProviderToken } from './lib/provider.js';
3
- export { environment } from './lib/environment.js';
4
3
  export { injectable } from './lib/injectable.js';
5
- export { inject } from './lib/inject.js';
4
+ export { inject, Injected } from './lib/inject.js';
package/target/lib.js CHANGED
@@ -1,5 +1,4 @@
1
1
  export { Injector } from './lib/injector.js';
2
- export { environment } from './lib/environment.js';
3
2
  export { injectable } from './lib/injectable.js';
4
3
  export { inject } from './lib/inject.js';
5
4
  //# sourceMappingURL=lib.js.map
package/target/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../src/lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAY,MAAM,iBAAiB,CAAC"}