@joist/di 3.9.0 → 3.9.1
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 +121 -137
- package/package.json +13 -2
- package/src/lib/inject.ts +2 -4
- package/src/lib/injectable.test.ts +0 -16
- package/src/lib/injectable.ts +19 -24
- package/src/lib/injector.test-node.ts +187 -0
- package/src/lib/injector.test.ts +4 -4
- package/src/lib/injector.ts +3 -4
- package/src/lib/lifecycle.test.ts +1 -0
- package/src/lib/provider.ts +0 -4
- package/src/lib.ts +3 -3
- package/target/lib/inject.js +1 -1
- package/target/lib/inject.js.map +1 -1
- package/target/lib/injectable.d.ts +0 -2
- package/target/lib/injectable.js +15 -23
- package/target/lib/injectable.js.map +1 -1
- package/target/lib/injectable.test.js +0 -27
- package/target/lib/injectable.test.js.map +1 -1
- package/target/lib/injector.d.ts +2 -1
- package/target/lib/injector.js +2 -4
- package/target/lib/injector.js.map +1 -1
- package/target/lib/injector.test-node.d.ts +1 -0
- package/target/lib/injector.test-node.js +231 -0
- package/target/lib/injector.test-node.js.map +1 -0
- package/target/lib/injector.test.js +4 -4
- package/target/lib/injector.test.js.map +1 -1
- package/target/lib/lifecycle.test.js.map +1 -1
- package/target/lib/provider.d.ts +0 -1
- package/target/lib/provider.js +0 -3
- package/target/lib/provider.js.map +1 -1
- package/target/lib.d.ts +3 -3
- package/target/lib.js +3 -3
- package/target/lib.js.map +1 -1
package/src/lib/injector.test.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { expect } from '@open-wc/testing';
|
|
|
3
3
|
import { Injector } from './injector.js';
|
|
4
4
|
import { inject } from './inject.js';
|
|
5
5
|
import { injectable } from './injectable.js';
|
|
6
|
-
import { Provider,
|
|
6
|
+
import { Provider, StaticToken } from './provider.js';
|
|
7
7
|
|
|
8
8
|
describe('Injector', () => {
|
|
9
9
|
it('should create a new instance of a single provider', () => {
|
|
@@ -148,7 +148,7 @@ describe('Injector', () => {
|
|
|
148
148
|
});
|
|
149
149
|
|
|
150
150
|
it('should create an instance from a StaticToken factory', () => {
|
|
151
|
-
const TOKEN =
|
|
151
|
+
const TOKEN = new StaticToken('test', () => 'Hello World');
|
|
152
152
|
const injector = new Injector();
|
|
153
153
|
|
|
154
154
|
const res = injector.inject(TOKEN);
|
|
@@ -157,7 +157,7 @@ describe('Injector', () => {
|
|
|
157
157
|
});
|
|
158
158
|
|
|
159
159
|
it('should create an instance from an async StaticToken factory', async () => {
|
|
160
|
-
const TOKEN =
|
|
160
|
+
const TOKEN = new StaticToken('test', () => Promise.resolve('Hello World'));
|
|
161
161
|
const injector = new Injector();
|
|
162
162
|
|
|
163
163
|
const res = await injector.inject(TOKEN);
|
|
@@ -166,7 +166,7 @@ describe('Injector', () => {
|
|
|
166
166
|
});
|
|
167
167
|
|
|
168
168
|
it('should allow static token to be overridden', () => {
|
|
169
|
-
const TOKEN =
|
|
169
|
+
const TOKEN = new StaticToken<string>('test');
|
|
170
170
|
|
|
171
171
|
const provider: Provider<string> = {
|
|
172
172
|
provide: TOKEN,
|
package/src/lib/injector.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectableMap } from './injectable-map.js';
|
|
2
2
|
import { LifeCycle } from './lifecycle.js';
|
|
3
3
|
import { InjectionToken, Provider, StaticToken } from './provider.js';
|
|
4
4
|
|
|
5
|
+
export const INJECTABLE_MAP = new InjectableMap();
|
|
6
|
+
|
|
5
7
|
/**
|
|
6
8
|
* Injectors create and store instances of services.
|
|
7
9
|
* A service is any constructable class.
|
|
@@ -136,9 +138,6 @@ export class Injector {
|
|
|
136
138
|
}
|
|
137
139
|
}
|
|
138
140
|
|
|
139
|
-
export function injector(providers: Provider<unknown>[] = [], parent?: Injector) {
|
|
140
|
-
return new Injector(providers, parent);
|
|
141
|
-
}
|
|
142
141
|
function callLifecycle(instance: unknown, method: symbol) {
|
|
143
142
|
if (typeof instance === 'object' && instance !== null) {
|
|
144
143
|
const lifecycle = Reflect.get(instance, method);
|
package/src/lib/provider.ts
CHANGED
package/src/lib.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Injector } from './lib/injector.js';
|
|
2
|
-
export { Provider, ConstructableToken, StaticToken
|
|
3
|
-
export { injectable
|
|
1
|
+
export { Injector, INJECTABLE_MAP } from './lib/injector.js';
|
|
2
|
+
export { Provider, ConstructableToken, StaticToken } from './lib/provider.js';
|
|
3
|
+
export { injectable } from './lib/injectable.js';
|
|
4
4
|
export { inject, Injected } from './lib/inject.js';
|
|
5
5
|
export { defineEnvironment, clearEnvironment } from './lib/environment.js';
|
|
6
6
|
export { LifeCycle } from './lib/lifecycle.js';
|
package/target/lib/inject.js
CHANGED
package/target/lib/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAK/C,MAAM,UAAU,MAAM,CAAyB,KAAwB;IACrE,OAAO;QACL,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAE1D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,yKAAyK,CACjL,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { ConstructableToken } from './provider.js';
|
|
2
|
-
import { InjectableMap } from './injectable-map.js';
|
|
3
|
-
export declare const INJECTABLE_MAP: InjectableMap;
|
|
4
2
|
export declare function injectable<T extends ConstructableToken<any>>(Base: T, _?: unknown): {
|
|
5
3
|
new (..._: any[]): {
|
|
6
4
|
[x: string]: any;
|
package/target/lib/injectable.js
CHANGED
|
@@ -1,38 +1,30 @@
|
|
|
1
|
-
import { Injector } from './injector.js';
|
|
1
|
+
import { INJECTABLE_MAP, Injector } from './injector.js';
|
|
2
2
|
import { environment } from './environment.js';
|
|
3
|
-
import { InjectableMap } from './injectable-map.js';
|
|
4
|
-
export const INJECTABLE_MAP = new InjectableMap();
|
|
5
3
|
export function injectable(Base, _) {
|
|
6
4
|
return class InjectableNode extends Base {
|
|
7
5
|
constructor(..._) {
|
|
8
6
|
super();
|
|
9
7
|
const injector = new Injector(Base.providers);
|
|
10
8
|
INJECTABLE_MAP.set(this, injector);
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
});
|
|
22
|
-
}
|
|
9
|
+
if ('HTMLElement' in globalThis && this instanceof HTMLElement) {
|
|
10
|
+
this.addEventListener('finddiroot', (e) => {
|
|
11
|
+
const parentInjector = findInjectorRoot(e);
|
|
12
|
+
if (parentInjector !== null) {
|
|
13
|
+
injector.setParent(parentInjector);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
injector.setParent(environment());
|
|
17
|
+
}
|
|
18
|
+
});
|
|
23
19
|
}
|
|
24
|
-
catch { }
|
|
25
20
|
}
|
|
26
21
|
connectedCallback() {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
super.connectedCallback();
|
|
32
|
-
}
|
|
22
|
+
if ('HTMLElement' in globalThis && this instanceof HTMLElement) {
|
|
23
|
+
this.dispatchEvent(new Event('finddiroot'));
|
|
24
|
+
if (super.connectedCallback) {
|
|
25
|
+
super.connectedCallback();
|
|
33
26
|
}
|
|
34
27
|
}
|
|
35
|
-
catch { }
|
|
36
28
|
}
|
|
37
29
|
disconnectedCallback() {
|
|
38
30
|
const injector = INJECTABLE_MAP.get(this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../src/lib/injectable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../src/lib/injectable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,UAAU,CAAoC,IAAO,EAAE,CAAW;IAChF,OAAO,MAAM,cAAe,SAAQ,IAAI;QACtC,YAAY,GAAG,CAAQ;YACrB,KAAK,EAAE,CAAC;YAGR,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAInC,IAAI,aAAa,IAAI,UAAU,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;gBAC/D,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,CAAC;wBAC5B,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;oBACpC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,iBAAiB;YACf,IAAI,aAAa,IAAI,UAAU,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;gBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,oBAAoB;YAClB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE1C,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAQ;IAChC,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;IAI9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAErB,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -2,7 +2,6 @@ import { __esDecorate, __runInitializers } from "tslib";
|
|
|
2
2
|
import { expect, fixture, html } from '@open-wc/testing';
|
|
3
3
|
import { injectable } from './injectable.js';
|
|
4
4
|
import { inject } from './inject.js';
|
|
5
|
-
import { Injector } from './injector.js';
|
|
6
5
|
describe('@injectable()', () => {
|
|
7
6
|
it('should allow a custom element to be injected with deps', () => {
|
|
8
7
|
class Foo {
|
|
@@ -45,32 +44,6 @@ describe('@injectable()', () => {
|
|
|
45
44
|
const el = new MyElement();
|
|
46
45
|
expect(el.foo()).to.be.instanceOf(Bar);
|
|
47
46
|
});
|
|
48
|
-
it('should call the onInject lifecycle hook', () => {
|
|
49
|
-
class A {
|
|
50
|
-
}
|
|
51
|
-
let B = (() => {
|
|
52
|
-
let _classDecorators = [injectable];
|
|
53
|
-
let _classDescriptor;
|
|
54
|
-
let _classExtraInitializers = [];
|
|
55
|
-
let _classThis;
|
|
56
|
-
var B = class {
|
|
57
|
-
static { _classThis = this; }
|
|
58
|
-
static {
|
|
59
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
60
|
-
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
61
|
-
B = _classThis = _classDescriptor.value;
|
|
62
|
-
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
63
|
-
__runInitializers(_classThis, _classExtraInitializers);
|
|
64
|
-
}
|
|
65
|
-
a = inject(A);
|
|
66
|
-
onInject() {
|
|
67
|
-
expect(this.a()).to.be.instanceOf(A);
|
|
68
|
-
}
|
|
69
|
-
};
|
|
70
|
-
return B = _classThis;
|
|
71
|
-
})();
|
|
72
|
-
new Injector().inject(B);
|
|
73
|
-
});
|
|
74
47
|
it('should handle parent HTML Injectors', async () => {
|
|
75
48
|
let A = (() => {
|
|
76
49
|
let _classDecorators = [injectable];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.test.js","sourceRoot":"","sources":["../../src/lib/injectable.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable.test.js","sourceRoot":"","sources":["../../src/lib/injectable.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/injector.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { InjectableMap } from './injectable-map.js';
|
|
1
2
|
import { InjectionToken, Provider } from './provider.js';
|
|
3
|
+
export declare const INJECTABLE_MAP: InjectableMap;
|
|
2
4
|
export declare class Injector {
|
|
3
5
|
#private;
|
|
4
6
|
parent: Injector | undefined;
|
|
@@ -9,4 +11,3 @@ export declare class Injector {
|
|
|
9
11
|
setParent(parent: Injector | undefined): void;
|
|
10
12
|
clear(): void;
|
|
11
13
|
}
|
|
12
|
-
export declare function injector(providers?: Provider<unknown>[], parent?: Injector): Injector;
|
package/target/lib/injector.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InjectableMap } from './injectable-map.js';
|
|
2
2
|
import { LifeCycle } from './lifecycle.js';
|
|
3
3
|
import { StaticToken } from './provider.js';
|
|
4
|
+
export const INJECTABLE_MAP = new InjectableMap();
|
|
4
5
|
export class Injector {
|
|
5
6
|
#instances = new WeakMap();
|
|
6
7
|
parent;
|
|
@@ -74,9 +75,6 @@ export class Injector {
|
|
|
74
75
|
return undefined;
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
|
-
export function injector(providers = [], parent) {
|
|
78
|
-
return new Injector(providers, parent);
|
|
79
|
-
}
|
|
80
78
|
function callLifecycle(instance, method) {
|
|
81
79
|
if (typeof instance === 'object' && instance !== null) {
|
|
82
80
|
const lifecycle = Reflect.get(instance, method);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import assert from 'node:assert';
|
|
4
|
+
import { Injector } from './injector.js';
|
|
5
|
+
import { inject } from './inject.js';
|
|
6
|
+
import { injectable } from './injectable.js';
|
|
7
|
+
import { StaticToken } from './provider.js';
|
|
8
|
+
test('should create a new instance of a single provider', () => {
|
|
9
|
+
class A {
|
|
10
|
+
}
|
|
11
|
+
const app = new Injector();
|
|
12
|
+
assert(app.inject(A) instanceof A);
|
|
13
|
+
assert.equal(app.inject(A), app.inject(A));
|
|
14
|
+
});
|
|
15
|
+
test('should inject providers in the correct order', () => {
|
|
16
|
+
class A {
|
|
17
|
+
}
|
|
18
|
+
class B {
|
|
19
|
+
}
|
|
20
|
+
let MyService = (() => {
|
|
21
|
+
let _classDecorators = [injectable];
|
|
22
|
+
let _classDescriptor;
|
|
23
|
+
let _classExtraInitializers = [];
|
|
24
|
+
let _classThis;
|
|
25
|
+
var MyService = class {
|
|
26
|
+
static { _classThis = this; }
|
|
27
|
+
static {
|
|
28
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
29
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
30
|
+
MyService = _classThis = _classDescriptor.value;
|
|
31
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
32
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
33
|
+
}
|
|
34
|
+
a = inject(A);
|
|
35
|
+
b = inject(B);
|
|
36
|
+
};
|
|
37
|
+
return MyService = _classThis;
|
|
38
|
+
})();
|
|
39
|
+
const app = new Injector();
|
|
40
|
+
const instance = app.inject(MyService);
|
|
41
|
+
assert(instance.a() instanceof A);
|
|
42
|
+
assert(instance.b() instanceof B);
|
|
43
|
+
});
|
|
44
|
+
test('should create a new instance of a provider that has a full dep tree', () => {
|
|
45
|
+
class A {
|
|
46
|
+
}
|
|
47
|
+
let B = (() => {
|
|
48
|
+
let _classDecorators = [injectable];
|
|
49
|
+
let _classDescriptor;
|
|
50
|
+
let _classExtraInitializers = [];
|
|
51
|
+
let _classThis;
|
|
52
|
+
var B = class {
|
|
53
|
+
static { _classThis = this; }
|
|
54
|
+
static {
|
|
55
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
56
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
57
|
+
B = _classThis = _classDescriptor.value;
|
|
58
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
59
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
60
|
+
}
|
|
61
|
+
a = inject(A);
|
|
62
|
+
};
|
|
63
|
+
return B = _classThis;
|
|
64
|
+
})();
|
|
65
|
+
let C = (() => {
|
|
66
|
+
let _classDecorators = [injectable];
|
|
67
|
+
let _classDescriptor;
|
|
68
|
+
let _classExtraInitializers = [];
|
|
69
|
+
let _classThis;
|
|
70
|
+
var C = class {
|
|
71
|
+
static { _classThis = this; }
|
|
72
|
+
static {
|
|
73
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
74
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
75
|
+
C = _classThis = _classDescriptor.value;
|
|
76
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
77
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
78
|
+
}
|
|
79
|
+
b = inject(B);
|
|
80
|
+
};
|
|
81
|
+
return C = _classThis;
|
|
82
|
+
})();
|
|
83
|
+
let D = (() => {
|
|
84
|
+
let _classDecorators = [injectable];
|
|
85
|
+
let _classDescriptor;
|
|
86
|
+
let _classExtraInitializers = [];
|
|
87
|
+
let _classThis;
|
|
88
|
+
var D = class {
|
|
89
|
+
static { _classThis = this; }
|
|
90
|
+
static {
|
|
91
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
92
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
93
|
+
D = _classThis = _classDescriptor.value;
|
|
94
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
95
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
96
|
+
}
|
|
97
|
+
c = inject(C);
|
|
98
|
+
};
|
|
99
|
+
return D = _classThis;
|
|
100
|
+
})();
|
|
101
|
+
let E = (() => {
|
|
102
|
+
let _classDecorators = [injectable];
|
|
103
|
+
let _classDescriptor;
|
|
104
|
+
let _classExtraInitializers = [];
|
|
105
|
+
let _classThis;
|
|
106
|
+
var E = class {
|
|
107
|
+
static { _classThis = this; }
|
|
108
|
+
static {
|
|
109
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
110
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
111
|
+
E = _classThis = _classDescriptor.value;
|
|
112
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
113
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
114
|
+
}
|
|
115
|
+
d = inject(D);
|
|
116
|
+
};
|
|
117
|
+
return E = _classThis;
|
|
118
|
+
})();
|
|
119
|
+
const app = new Injector();
|
|
120
|
+
const instance = app.inject(E);
|
|
121
|
+
assert(instance.d().c().b().a() instanceof A);
|
|
122
|
+
});
|
|
123
|
+
test('should override a provider if explicitly instructed', () => {
|
|
124
|
+
class A {
|
|
125
|
+
}
|
|
126
|
+
let B = (() => {
|
|
127
|
+
let _classDecorators = [injectable];
|
|
128
|
+
let _classDescriptor;
|
|
129
|
+
let _classExtraInitializers = [];
|
|
130
|
+
let _classThis;
|
|
131
|
+
var B = class {
|
|
132
|
+
static { _classThis = this; }
|
|
133
|
+
static {
|
|
134
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
135
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
136
|
+
B = _classThis = _classDescriptor.value;
|
|
137
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
138
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
139
|
+
}
|
|
140
|
+
a = inject(A);
|
|
141
|
+
};
|
|
142
|
+
return B = _classThis;
|
|
143
|
+
})();
|
|
144
|
+
class AltA extends A {
|
|
145
|
+
}
|
|
146
|
+
const app = new Injector([{ provide: A, use: AltA }]);
|
|
147
|
+
assert(app.inject(B).a() instanceof AltA);
|
|
148
|
+
});
|
|
149
|
+
test('should return an existing instance from a parent injector', () => {
|
|
150
|
+
class A {
|
|
151
|
+
}
|
|
152
|
+
const parent = new Injector();
|
|
153
|
+
const app = new Injector([], parent);
|
|
154
|
+
assert.equal(parent.inject(A), app.inject(A));
|
|
155
|
+
});
|
|
156
|
+
test('should use a factory if provided', () => {
|
|
157
|
+
class Service {
|
|
158
|
+
hello() {
|
|
159
|
+
return 'world';
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
const injector = new Injector([
|
|
163
|
+
{
|
|
164
|
+
provide: Service,
|
|
165
|
+
factory() {
|
|
166
|
+
return {
|
|
167
|
+
hello() {
|
|
168
|
+
return 'world';
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
]);
|
|
174
|
+
assert.equal(injector.inject(Service).hello(), 'world');
|
|
175
|
+
});
|
|
176
|
+
test('should throw an error if provider is missing both factory and use', () => {
|
|
177
|
+
class Service {
|
|
178
|
+
hello() {
|
|
179
|
+
return 'world';
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
const injector = new Injector([
|
|
183
|
+
{
|
|
184
|
+
provide: Service
|
|
185
|
+
}
|
|
186
|
+
]);
|
|
187
|
+
assert.throws(() => injector.inject(Service), new Error("Provider for Service found but is missing either 'use' or 'factory'"));
|
|
188
|
+
});
|
|
189
|
+
test('should pass factories and instance of the injector', async () => {
|
|
190
|
+
class Service {
|
|
191
|
+
hello() {
|
|
192
|
+
return 'world';
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
let factoryInjector = null;
|
|
196
|
+
const injector = new Injector([
|
|
197
|
+
{
|
|
198
|
+
provide: Service,
|
|
199
|
+
factory(i) {
|
|
200
|
+
factoryInjector = i;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
]);
|
|
204
|
+
injector.inject(Service);
|
|
205
|
+
assert.equal(factoryInjector, injector);
|
|
206
|
+
});
|
|
207
|
+
test('should create an instance from a StaticToken factory', () => {
|
|
208
|
+
const TOKEN = new StaticToken('test', () => 'Hello World');
|
|
209
|
+
const injector = new Injector();
|
|
210
|
+
const res = injector.inject(TOKEN);
|
|
211
|
+
assert.equal(res, 'Hello World');
|
|
212
|
+
});
|
|
213
|
+
test('should create an instance from an async StaticToken factory', async () => {
|
|
214
|
+
const TOKEN = new StaticToken('test', () => Promise.resolve('Hello World'));
|
|
215
|
+
const injector = new Injector();
|
|
216
|
+
const res = await injector.inject(TOKEN);
|
|
217
|
+
assert.equal(res, 'Hello World');
|
|
218
|
+
});
|
|
219
|
+
test('should allow static token to be overridden', () => {
|
|
220
|
+
const TOKEN = new StaticToken('test');
|
|
221
|
+
const provider = {
|
|
222
|
+
provide: TOKEN,
|
|
223
|
+
factory() {
|
|
224
|
+
return 'Hello World';
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
const injector = new Injector([provider]);
|
|
228
|
+
const res = injector.inject(TOKEN);
|
|
229
|
+
assert.equal(res, 'Hello World');
|
|
230
|
+
});
|
|
231
|
+
//# sourceMappingURL=injector.test-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injector.test-node.js","sourceRoot":"","sources":["../../src/lib/injector.test-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { expect } from '@open-wc/testing';
|
|
|
3
3
|
import { Injector } from './injector.js';
|
|
4
4
|
import { inject } from './inject.js';
|
|
5
5
|
import { injectable } from './injectable.js';
|
|
6
|
-
import {
|
|
6
|
+
import { StaticToken } from './provider.js';
|
|
7
7
|
describe('Injector', () => {
|
|
8
8
|
it('should create a new instance of a single provider', () => {
|
|
9
9
|
class A {
|
|
@@ -204,19 +204,19 @@ describe('Injector', () => {
|
|
|
204
204
|
injector.inject(Service);
|
|
205
205
|
});
|
|
206
206
|
it('should create an instance from a StaticToken factory', () => {
|
|
207
|
-
const TOKEN =
|
|
207
|
+
const TOKEN = new StaticToken('test', () => 'Hello World');
|
|
208
208
|
const injector = new Injector();
|
|
209
209
|
const res = injector.inject(TOKEN);
|
|
210
210
|
expect(res).to.equal('Hello World');
|
|
211
211
|
});
|
|
212
212
|
it('should create an instance from an async StaticToken factory', async () => {
|
|
213
|
-
const TOKEN =
|
|
213
|
+
const TOKEN = new StaticToken('test', () => Promise.resolve('Hello World'));
|
|
214
214
|
const injector = new Injector();
|
|
215
215
|
const res = await injector.inject(TOKEN);
|
|
216
216
|
expect(res).to.equal('Hello World');
|
|
217
217
|
});
|
|
218
218
|
it('should allow static token to be overridden', () => {
|
|
219
|
-
const TOKEN =
|
|
219
|
+
const TOKEN = new StaticToken('test');
|
|
220
220
|
const provider = {
|
|
221
221
|
provide: TOKEN,
|
|
222
222
|
factory() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAY,
|
|
1
|
+
{"version":3,"file":"injector.test.js","sourceRoot":"","sources":["../../src/lib/injector.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/provider.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export declare class StaticToken<T> {
|
|
|
4
4
|
factory: (() => T) | undefined;
|
|
5
5
|
constructor(name: string, factory?: () => T);
|
|
6
6
|
}
|
|
7
|
-
export declare function token<T>(name: string, factory?: () => T): StaticToken<T>;
|
|
8
7
|
export interface ConstructableToken<T> {
|
|
9
8
|
providers?: Provider<any>[];
|
|
10
9
|
new (...args: any[]): T;
|
package/target/lib/provider.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/lib/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,IAAI,CAAC;IACL,OAAO,CAAC;IAER,YAAY,IAAY,EAAE,OAAiB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/lib/provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,WAAW;IACtB,IAAI,CAAC;IACL,OAAO,CAAC;IAER,YAAY,IAAY,EAAE,OAAiB;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
package/target/lib.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { Injector } from './lib/injector.js';
|
|
2
|
-
export { Provider, ConstructableToken, StaticToken
|
|
3
|
-
export { injectable
|
|
1
|
+
export { Injector, INJECTABLE_MAP } from './lib/injector.js';
|
|
2
|
+
export { Provider, ConstructableToken, StaticToken } from './lib/provider.js';
|
|
3
|
+
export { injectable } from './lib/injectable.js';
|
|
4
4
|
export { inject, Injected } from './lib/inject.js';
|
|
5
5
|
export { defineEnvironment, clearEnvironment } from './lib/environment.js';
|
|
6
6
|
export { LifeCycle } from './lib/lifecycle.js';
|