@joist/di 4.4.0 → 4.5.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/package.json +1 -1
- package/src/lib/inject.test.ts +14 -1
- package/src/lib/inject.ts +10 -4
- package/src/lib/injector.ts +7 -3
- package/target/lib/inject.d.ts +7 -2
- package/target/lib/inject.js +4 -4
- package/target/lib/inject.js.map +1 -1
- package/target/lib/inject.test.js +40 -1
- package/target/lib/inject.test.js.map +1 -1
- package/target/lib/injector.d.ts +4 -1
- package/target/lib/injector.js +3 -3
- package/target/lib/injector.js.map +1 -1
package/package.json
CHANGED
package/src/lib/inject.test.ts
CHANGED
|
@@ -99,7 +99,7 @@ it("should use the calling injector as parent", () => {
|
|
|
99
99
|
assert.strictEqual(parent.inject(BarService).foo().value, "100");
|
|
100
100
|
});
|
|
101
101
|
|
|
102
|
-
it("should
|
|
102
|
+
it("should allow you to inject all", () => {
|
|
103
103
|
const TOKEN = new StaticToken("test", () => "Hello World");
|
|
104
104
|
|
|
105
105
|
@injectable()
|
|
@@ -109,3 +109,16 @@ it("should all you to inject all", () => {
|
|
|
109
109
|
|
|
110
110
|
assert.deepEqual(new HelloWorld().hello(), ["Hello World"]);
|
|
111
111
|
});
|
|
112
|
+
|
|
113
|
+
it("should create non-singleton instances", () => {
|
|
114
|
+
@injectable()
|
|
115
|
+
class Hello {}
|
|
116
|
+
|
|
117
|
+
@injectable()
|
|
118
|
+
class HelloWorld {
|
|
119
|
+
hello = inject(Hello, { singleton: false });
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const instance = new HelloWorld();
|
|
123
|
+
assert.notEqual(instance.hello(), instance.hello());
|
|
124
|
+
});
|
package/src/lib/inject.ts
CHANGED
|
@@ -7,15 +7,21 @@ export type Injected<T> = () => T;
|
|
|
7
7
|
/**
|
|
8
8
|
* Injects a service into an `injectable` class.
|
|
9
9
|
*/
|
|
10
|
-
export function inject<T>(
|
|
11
|
-
|
|
10
|
+
export function inject<T>(
|
|
11
|
+
token: InjectionToken<T>,
|
|
12
|
+
opts?: { singleton?: boolean; ignoreParent?: boolean },
|
|
13
|
+
): Injected<T> {
|
|
14
|
+
return internalInject((i) => i.inject(token, opts));
|
|
12
15
|
}
|
|
13
16
|
|
|
14
17
|
/**
|
|
15
18
|
* Finds and injects ALL instances of a service from the current points up.
|
|
16
19
|
*/
|
|
17
|
-
export function injectAll<T>(
|
|
18
|
-
|
|
20
|
+
export function injectAll<T>(
|
|
21
|
+
token: InjectionToken<T>,
|
|
22
|
+
opts?: { singleton: boolean },
|
|
23
|
+
): Injected<T[]> {
|
|
24
|
+
return internalInject((i) => i.injectAll(token, opts));
|
|
19
25
|
}
|
|
20
26
|
|
|
21
27
|
function internalInject<T extends object, R>(cb: (i: Injector) => R) {
|
package/src/lib/injector.ts
CHANGED
|
@@ -48,11 +48,15 @@ export class Injector {
|
|
|
48
48
|
this.providers = new ProviderMap(opts?.providers);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
injectAll<T>(
|
|
52
|
-
|
|
51
|
+
injectAll<T>(
|
|
52
|
+
token: InjectionToken<T>,
|
|
53
|
+
opts?: { ignoreParent?: boolean; singleton?: boolean },
|
|
54
|
+
collection: T[] = [],
|
|
55
|
+
): T[] {
|
|
56
|
+
collection.push(this.inject<T>(token, { ignoreParent: true, singleton: opts?.singleton }));
|
|
53
57
|
|
|
54
58
|
if (this.parent) {
|
|
55
|
-
return this.parent.injectAll<T>(token, collection);
|
|
59
|
+
return this.parent.injectAll<T>(token, opts, collection);
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
return collection;
|
package/target/lib/inject.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import type { InjectionToken } from "./provider.js";
|
|
2
2
|
export type Injected<T> = () => T;
|
|
3
|
-
export declare function inject<T>(token: InjectionToken<T
|
|
4
|
-
|
|
3
|
+
export declare function inject<T>(token: InjectionToken<T>, opts?: {
|
|
4
|
+
singleton?: boolean;
|
|
5
|
+
ignoreParent?: boolean;
|
|
6
|
+
}): Injected<T>;
|
|
7
|
+
export declare function injectAll<T>(token: InjectionToken<T>, opts?: {
|
|
8
|
+
singleton: boolean;
|
|
9
|
+
}): Injected<T[]>;
|
package/target/lib/inject.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { readInjector } from "./metadata.js";
|
|
2
|
-
export function inject(token) {
|
|
3
|
-
return internalInject((i) => i.inject(token));
|
|
2
|
+
export function inject(token, opts) {
|
|
3
|
+
return internalInject((i) => i.inject(token, opts));
|
|
4
4
|
}
|
|
5
|
-
export function injectAll(token) {
|
|
6
|
-
return internalInject((i) => i.injectAll(token));
|
|
5
|
+
export function injectAll(token, opts) {
|
|
6
|
+
return internalInject((i) => i.injectAll(token, opts));
|
|
7
7
|
}
|
|
8
8
|
function internalInject(cb) {
|
|
9
9
|
return function () {
|
package/target/lib/inject.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQ7C,MAAM,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQ7C,MAAM,UAAU,MAAM,CACpB,KAAwB,EACxB,IAAsD;IAEtD,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACtD,CAAC;AAKD,MAAM,UAAU,SAAS,CACvB,KAAwB,EACxB,IAA6B;IAE7B,OAAO,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,cAAc,CAAsB,EAAsB;IACjE,OAAO;QACL,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAEpC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,gKAAgK,CACzL,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -135,7 +135,7 @@ it("should use the calling injector as parent", () => {
|
|
|
135
135
|
});
|
|
136
136
|
assert.strictEqual(parent.inject(BarService).foo().value, "100");
|
|
137
137
|
});
|
|
138
|
-
it("should
|
|
138
|
+
it("should allow you to inject all", () => {
|
|
139
139
|
const TOKEN = new StaticToken("test", () => "Hello World");
|
|
140
140
|
let HelloWorld = (() => {
|
|
141
141
|
let _classDecorators = [injectable()];
|
|
@@ -157,4 +157,43 @@ it("should all you to inject all", () => {
|
|
|
157
157
|
})();
|
|
158
158
|
assert.deepEqual(new HelloWorld().hello(), ["Hello World"]);
|
|
159
159
|
});
|
|
160
|
+
it("should create non-singleton instances", () => {
|
|
161
|
+
let Hello = (() => {
|
|
162
|
+
let _classDecorators = [injectable()];
|
|
163
|
+
let _classDescriptor;
|
|
164
|
+
let _classExtraInitializers = [];
|
|
165
|
+
let _classThis;
|
|
166
|
+
var Hello = class {
|
|
167
|
+
static { _classThis = this; }
|
|
168
|
+
static {
|
|
169
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
170
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
171
|
+
Hello = _classThis = _classDescriptor.value;
|
|
172
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
173
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
return Hello = _classThis;
|
|
177
|
+
})();
|
|
178
|
+
let HelloWorld = (() => {
|
|
179
|
+
let _classDecorators = [injectable()];
|
|
180
|
+
let _classDescriptor;
|
|
181
|
+
let _classExtraInitializers = [];
|
|
182
|
+
let _classThis;
|
|
183
|
+
var HelloWorld = class {
|
|
184
|
+
static { _classThis = this; }
|
|
185
|
+
static {
|
|
186
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
187
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
188
|
+
HelloWorld = _classThis = _classDescriptor.value;
|
|
189
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
190
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
191
|
+
}
|
|
192
|
+
hello = inject(Hello, { singleton: false });
|
|
193
|
+
};
|
|
194
|
+
return HelloWorld = _classThis;
|
|
195
|
+
})();
|
|
196
|
+
const instance = new HelloWorld();
|
|
197
|
+
assert.notEqual(instance.hello(), instance.hello());
|
|
198
|
+
});
|
|
160
199
|
//# sourceMappingURL=inject.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.test.js","sourceRoot":"","sources":["../../src/lib/inject.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"inject.test.js","sourceRoot":"","sources":["../../src/lib/inject.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/injector.d.ts
CHANGED
|
@@ -13,7 +13,10 @@ export declare class Injector {
|
|
|
13
13
|
parent?: Injector;
|
|
14
14
|
providers: ProviderMap;
|
|
15
15
|
constructor(opts?: InjectorOpts);
|
|
16
|
-
injectAll<T>(token: InjectionToken<T>,
|
|
16
|
+
injectAll<T>(token: InjectionToken<T>, opts?: {
|
|
17
|
+
ignoreParent?: boolean;
|
|
18
|
+
singleton?: boolean;
|
|
19
|
+
}, collection?: T[]): T[];
|
|
17
20
|
inject<T>(token: InjectionToken<T>, opts?: {
|
|
18
21
|
ignoreParent?: boolean;
|
|
19
22
|
singleton?: boolean;
|
package/target/lib/injector.js
CHANGED
|
@@ -13,10 +13,10 @@ export class Injector {
|
|
|
13
13
|
this.parent = opts?.parent;
|
|
14
14
|
this.providers = new ProviderMap(opts?.providers);
|
|
15
15
|
}
|
|
16
|
-
injectAll(token, collection = []) {
|
|
17
|
-
collection.push(this.inject(token, { ignoreParent: true }));
|
|
16
|
+
injectAll(token, opts, collection = []) {
|
|
17
|
+
collection.push(this.inject(token, { ignoreParent: true, singleton: opts?.singleton }));
|
|
18
18
|
if (this.parent) {
|
|
19
|
-
return this.parent.injectAll(token, collection);
|
|
19
|
+
return this.parent.injectAll(token, opts, collection);
|
|
20
20
|
}
|
|
21
21
|
return collection;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAKL,WAAW,GACZ,MAAM,eAAe,CAAC;AAQvB,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAEhE,MAAM,OAAO,WAAY,SAAQ,GAA0C;CAAG;AAmB9E,MAAM,OAAO,QAAQ;IAEnB,UAAU,GAAG,IAAI,OAAO,EAA4B,CAAC;IAErD,IAAI,CAAU;IACd,MAAM,CAAY;IAClB,SAAS,CAAc;IAEvB,YAAY,IAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,
|
|
1
|
+
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../../src/lib/injector.ts"],"names":[],"mappings":"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"}
|