@joist/di 4.2.3-next.11 → 4.2.3-next.13
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/dom/injectable-el.ts +4 -2
- package/src/lib/lifecycle.test.ts +20 -2
- package/src/lib/lifecycle.ts +10 -10
- package/src/lib/metadata.ts +8 -8
- package/target/lib/dom/injectable-el.d.ts +3 -2
- package/target/lib/dom/injectable-el.js.map +1 -1
- package/target/lib/lifecycle.d.ts +3 -3
- package/target/lib/lifecycle.js +3 -3
- package/target/lib/lifecycle.js.map +1 -1
- package/target/lib/lifecycle.test.js +43 -5
- package/target/lib/lifecycle.test.js.map +1 -1
- package/target/lib/metadata.d.ts +9 -6
- package/target/lib/metadata.js.map +1 -1
package/package.json
CHANGED
|
@@ -6,10 +6,12 @@ import { callLifecycle } from "../lifecycle.js";
|
|
|
6
6
|
import type { InjectableMetadata } from "../metadata.js";
|
|
7
7
|
import type { ConstructableToken } from "../provider.js";
|
|
8
8
|
|
|
9
|
+
export type InjectableEl = HTMLElement & { [INJECTOR]: Injector };
|
|
10
|
+
|
|
9
11
|
export function injectableEl<
|
|
10
|
-
T extends ConstructableToken<
|
|
12
|
+
T extends ConstructableToken<InjectableEl>,
|
|
11
13
|
>(Base: T, ctx: ClassDecoratorContext): T {
|
|
12
|
-
const metadata: InjectableMetadata = ctx.metadata;
|
|
14
|
+
const metadata: InjectableMetadata<InjectableEl> = ctx.metadata;
|
|
13
15
|
|
|
14
16
|
const def = {
|
|
15
17
|
[Base.name]: class extends Base {
|
|
@@ -254,8 +254,8 @@ it("should pass the injector to the condition", () => {
|
|
|
254
254
|
|
|
255
255
|
function isProd() {
|
|
256
256
|
return (val: LifecycleCallback, ctx: ClassMethodDecoratorContext) => {
|
|
257
|
-
created((
|
|
258
|
-
const enabled =
|
|
257
|
+
created(({ injector }) => {
|
|
258
|
+
const enabled = injector.inject(IS_PROD);
|
|
259
259
|
return { enabled };
|
|
260
260
|
})(val, ctx);
|
|
261
261
|
};
|
|
@@ -274,3 +274,21 @@ it("should pass the injector to the condition", () => {
|
|
|
274
274
|
const service = i.inject(MyService);
|
|
275
275
|
assert.equal(service.count, 0); // Not called because count is 0
|
|
276
276
|
});
|
|
277
|
+
|
|
278
|
+
it("should pass the instance to the condition", () => {
|
|
279
|
+
const i = new Injector();
|
|
280
|
+
|
|
281
|
+
@injectable()
|
|
282
|
+
class MyService {
|
|
283
|
+
enabled = false;
|
|
284
|
+
count = 0;
|
|
285
|
+
|
|
286
|
+
@created(({ instance }) => ({ enabled: instance.enabled }))
|
|
287
|
+
onCreated() {
|
|
288
|
+
this.count++;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
const service = i.inject(MyService);
|
|
293
|
+
assert.equal(service.count, 0); // not called because instance.enabled is false
|
|
294
|
+
});
|
package/src/lib/lifecycle.ts
CHANGED
|
@@ -6,12 +6,12 @@ import type {
|
|
|
6
6
|
LifecycleMethod,
|
|
7
7
|
} from "./metadata.js";
|
|
8
8
|
|
|
9
|
-
export function injected(condition?: LifecycleCondition) {
|
|
9
|
+
export function injected<T>(condition?: LifecycleCondition<T>) {
|
|
10
10
|
return function onInjectDecorator(
|
|
11
11
|
val: LifecycleCallback,
|
|
12
|
-
ctx: ClassMethodDecoratorContext
|
|
12
|
+
ctx: ClassMethodDecoratorContext<T>,
|
|
13
13
|
): void {
|
|
14
|
-
const metadata: InjectableMetadata = ctx.metadata;
|
|
14
|
+
const metadata: InjectableMetadata<T> = ctx.metadata;
|
|
15
15
|
metadata.onInjected ??= [];
|
|
16
16
|
metadata.onInjected.push({
|
|
17
17
|
callback: val,
|
|
@@ -20,12 +20,12 @@ export function injected(condition?: LifecycleCondition) {
|
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
export function created(condition?: LifecycleCondition) {
|
|
23
|
+
export function created<T>(condition?: LifecycleCondition<T>) {
|
|
24
24
|
return function onInjectDecorator(
|
|
25
25
|
val: LifecycleCallback,
|
|
26
|
-
ctx: ClassMethodDecoratorContext
|
|
26
|
+
ctx: ClassMethodDecoratorContext<T>,
|
|
27
27
|
): void {
|
|
28
|
-
const metadata: InjectableMetadata = ctx.metadata;
|
|
28
|
+
const metadata: InjectableMetadata<T> = ctx.metadata;
|
|
29
29
|
metadata.onCreated ??= [];
|
|
30
30
|
metadata.onCreated.push({
|
|
31
31
|
callback: val,
|
|
@@ -36,18 +36,18 @@ export function created(condition?: LifecycleCondition) {
|
|
|
36
36
|
|
|
37
37
|
export function callLifecycle(
|
|
38
38
|
instance: object,
|
|
39
|
-
|
|
40
|
-
methods?: LifecycleMethod[],
|
|
39
|
+
injector: Injector,
|
|
40
|
+
methods?: LifecycleMethod<any>[],
|
|
41
41
|
): void {
|
|
42
42
|
if (methods) {
|
|
43
43
|
for (const { callback, condition } of methods) {
|
|
44
44
|
if (condition) {
|
|
45
|
-
const result = condition(
|
|
45
|
+
const result = condition({ injector, instance });
|
|
46
46
|
if (result.enabled === false) {
|
|
47
47
|
continue;
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
callback.call(instance,
|
|
50
|
+
callback.call(instance, injector);
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
}
|
package/src/lib/metadata.ts
CHANGED
|
@@ -5,20 +5,20 @@ import type { InjectionToken } from "./provider.js";
|
|
|
5
5
|
|
|
6
6
|
export type LifecycleCallback = (i: Injector) => void;
|
|
7
7
|
|
|
8
|
-
export type LifecycleCondition = (injector: Injector) => { enabled?: boolean };
|
|
8
|
+
export type LifecycleCondition<T> = (ctx:{injector: Injector, instance: T}) => { enabled?: boolean };
|
|
9
9
|
|
|
10
|
-
export interface LifecycleMethod {
|
|
10
|
+
export interface LifecycleMethod<T> {
|
|
11
11
|
callback: LifecycleCallback;
|
|
12
|
-
condition?: LifecycleCondition
|
|
12
|
+
condition?: LifecycleCondition<T>;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export interface InjectableMetadata {
|
|
16
|
-
onCreated?: LifecycleMethod[];
|
|
17
|
-
onInjected?: LifecycleMethod[];
|
|
15
|
+
export interface InjectableMetadata<T> {
|
|
16
|
+
onCreated?: LifecycleMethod<T>[];
|
|
17
|
+
onInjected?: LifecycleMethod<T>[];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export function readMetadata<T>(target: InjectionToken<T>): InjectableMetadata | null {
|
|
21
|
-
const metadata: InjectableMetadata | null = target[Symbol.metadata];
|
|
20
|
+
export function readMetadata<T>(target: InjectionToken<T>): InjectableMetadata<T> | null {
|
|
21
|
+
const metadata: InjectableMetadata<T> | null = target[Symbol.metadata];
|
|
22
22
|
|
|
23
23
|
return metadata;
|
|
24
24
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { INJECTOR } from "../injector.js";
|
|
2
2
|
import type { Injector } from "../injector.js";
|
|
3
3
|
import type { ConstructableToken } from "../provider.js";
|
|
4
|
-
export
|
|
4
|
+
export type InjectableEl = HTMLElement & {
|
|
5
5
|
[INJECTOR]: Injector;
|
|
6
|
-
}
|
|
6
|
+
};
|
|
7
|
+
export declare function injectableEl<T extends ConstructableToken<InjectableEl>>(Base: T, ctx: ClassDecoratorContext): T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"injectable-el.js","sourceRoot":"","sources":["../../../src/lib/dom/injectable-el.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMhD,MAAM,UAAU,YAAY,CAE1B,IAAO,EAAE,GAA0B;IACnC,MAAM,QAAQ,GAAqC,GAAG,CAAC,QAAQ,CAAC;IAEhE,MAAM,GAAG,GAAG;QACV,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAM,SAAQ,IAAI;YAC7B,YAAY,GAAG,CAAQ;gBACrB,KAAK,EAAE,CAAC;gBAER,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhC,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE;oBAC7C,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;wBACpD,CAAC,CAAC,eAAe,EAAE,CAAC;wBAEpB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;YACrD,CAAC;YAED,iBAAiB;gBACf,IAAI,CAAC,aAAa,CAChB,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;gBAC9B,CAAC,CAAC,CACH,CAAC;gBAEF,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAE1D,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;oBAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oBAAoB;gBAIlB,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;oBAC/B,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;YACpC,CAAC;SACF;KACF,CAAC;IAEF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Injector } from "./injector.js";
|
|
2
2
|
import type { LifecycleCallback, LifecycleCondition, LifecycleMethod } from "./metadata.js";
|
|
3
|
-
export declare function injected<T
|
|
4
|
-
export declare function created<T
|
|
5
|
-
export declare function callLifecycle
|
|
3
|
+
export declare function injected<T>(condition?: LifecycleCondition<T>): (val: LifecycleCallback, ctx: ClassMethodDecoratorContext<T>) => void;
|
|
4
|
+
export declare function created<T>(condition?: LifecycleCondition<T>): (val: LifecycleCallback, ctx: ClassMethodDecoratorContext<T>) => void;
|
|
5
|
+
export declare function callLifecycle(instance: object, injector: Injector, methods?: LifecycleMethod<any>[]): void;
|
package/target/lib/lifecycle.js
CHANGED
|
@@ -18,16 +18,16 @@ export function created(condition) {
|
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
export function callLifecycle(instance,
|
|
21
|
+
export function callLifecycle(instance, injector, methods) {
|
|
22
22
|
if (methods) {
|
|
23
23
|
for (const { callback, condition } of methods) {
|
|
24
24
|
if (condition) {
|
|
25
|
-
const result = condition(instance);
|
|
25
|
+
const result = condition({ injector, instance });
|
|
26
26
|
if (result.enabled === false) {
|
|
27
27
|
continue;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
callback.call(instance,
|
|
30
|
+
callback.call(instance, injector);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lib/lifecycle.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,QAAQ,
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lib/lifecycle.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,QAAQ,CAAI,SAAiC;IAC3D,OAAO,SAAS,iBAAiB,CAC/B,GAAsB,EACtB,GAAmC;QAEnC,MAAM,QAAQ,GAA0B,GAAG,CAAC,QAAQ,CAAC;QACrD,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC;QAC3B,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;YACvB,QAAQ,EAAE,GAAG;YACb,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,SAAiC;IAC1D,OAAO,SAAS,iBAAiB,CAC/B,GAAsB,EACtB,GAAmC;QAEnC,MAAM,QAAQ,GAA0B,GAAG,CAAC,QAAQ,CAAC;QACrD,QAAQ,CAAC,SAAS,KAAK,EAAE,CAAC;QAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,GAAG;YACb,SAAS;SACV,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAgB,EAChB,QAAkB,EAClB,OAAgC;IAEhC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC;YAC9C,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACjD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { injectable } from "./injectable.js";
|
|
|
5
5
|
import { Injector } from "./injector.js";
|
|
6
6
|
import { created, injected } from "./lifecycle.js";
|
|
7
7
|
import { readInjector } from "./metadata.js";
|
|
8
|
+
import { StaticToken } from "./provider.js";
|
|
8
9
|
it("should call onInit and onInject when a service is first created", () => {
|
|
9
10
|
const i = new Injector();
|
|
10
11
|
let MyService = (() => {
|
|
@@ -361,8 +362,17 @@ it("should execute callbacks when condition returns empty object", () => {
|
|
|
361
362
|
onInjected: 1,
|
|
362
363
|
});
|
|
363
364
|
});
|
|
364
|
-
it("should
|
|
365
|
+
it("should pass the injector to the condition", () => {
|
|
366
|
+
const IS_PROD = new StaticToken("isProd", () => false);
|
|
365
367
|
const i = new Injector();
|
|
368
|
+
function isProd() {
|
|
369
|
+
return (val, ctx) => {
|
|
370
|
+
created(({ injector }) => {
|
|
371
|
+
const enabled = injector.inject(IS_PROD);
|
|
372
|
+
return { enabled };
|
|
373
|
+
})(val, ctx);
|
|
374
|
+
};
|
|
375
|
+
}
|
|
366
376
|
let MyService = (() => {
|
|
367
377
|
let _classDecorators = [injectable()];
|
|
368
378
|
let _classDescriptor;
|
|
@@ -374,9 +384,7 @@ it("should provide type safety for instance properties", () => {
|
|
|
374
384
|
static { _classThis = this; }
|
|
375
385
|
static {
|
|
376
386
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
377
|
-
_onCreated_decorators = [
|
|
378
|
-
return { enabled: instance.count > 0 && instance.name === "test" };
|
|
379
|
-
})];
|
|
387
|
+
_onCreated_decorators = [isProd()];
|
|
380
388
|
__esDecorate(this, null, _onCreated_decorators, { kind: "method", name: "onCreated", static: false, private: false, access: { has: obj => "onCreated" in obj, get: obj => obj.onCreated }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
381
389
|
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
382
390
|
MyService = _classThis = _classDescriptor.value;
|
|
@@ -384,7 +392,37 @@ it("should provide type safety for instance properties", () => {
|
|
|
384
392
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
385
393
|
}
|
|
386
394
|
count = (__runInitializers(this, _instanceExtraInitializers), 0);
|
|
387
|
-
|
|
395
|
+
onCreated() {
|
|
396
|
+
this.count++;
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
return MyService = _classThis;
|
|
400
|
+
})();
|
|
401
|
+
const service = i.inject(MyService);
|
|
402
|
+
assert.equal(service.count, 0);
|
|
403
|
+
});
|
|
404
|
+
it("should pass the instance to the condition", () => {
|
|
405
|
+
const i = new Injector();
|
|
406
|
+
let MyService = (() => {
|
|
407
|
+
let _classDecorators = [injectable()];
|
|
408
|
+
let _classDescriptor;
|
|
409
|
+
let _classExtraInitializers = [];
|
|
410
|
+
let _classThis;
|
|
411
|
+
let _instanceExtraInitializers = [];
|
|
412
|
+
let _onCreated_decorators;
|
|
413
|
+
var MyService = class {
|
|
414
|
+
static { _classThis = this; }
|
|
415
|
+
static {
|
|
416
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
417
|
+
_onCreated_decorators = [created(({ instance }) => ({ enabled: instance.enabled }))];
|
|
418
|
+
__esDecorate(this, null, _onCreated_decorators, { kind: "method", name: "onCreated", static: false, private: false, access: { has: obj => "onCreated" in obj, get: obj => obj.onCreated }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
419
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
420
|
+
MyService = _classThis = _classDescriptor.value;
|
|
421
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
422
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
423
|
+
}
|
|
424
|
+
enabled = (__runInitializers(this, _instanceExtraInitializers), false);
|
|
425
|
+
count = 0;
|
|
388
426
|
onCreated() {
|
|
389
427
|
this.count++;
|
|
390
428
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/lib/lifecycle.test.ts"],"names":[],"mappings":"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"}
|
package/target/lib/metadata.d.ts
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { type Injector } from "./injector.js";
|
|
2
2
|
import type { InjectionToken } from "./provider.js";
|
|
3
3
|
export type LifecycleCallback = (i: Injector) => void;
|
|
4
|
-
export type LifecycleCondition<T
|
|
4
|
+
export type LifecycleCondition<T> = (ctx: {
|
|
5
|
+
injector: Injector;
|
|
6
|
+
instance: T;
|
|
7
|
+
}) => {
|
|
5
8
|
enabled?: boolean;
|
|
6
9
|
};
|
|
7
|
-
export interface LifecycleMethod<T
|
|
10
|
+
export interface LifecycleMethod<T> {
|
|
8
11
|
callback: LifecycleCallback;
|
|
9
12
|
condition?: LifecycleCondition<T>;
|
|
10
13
|
}
|
|
11
|
-
export interface InjectableMetadata {
|
|
12
|
-
onCreated?: LifecycleMethod<
|
|
13
|
-
onInjected?: LifecycleMethod<
|
|
14
|
+
export interface InjectableMetadata<T> {
|
|
15
|
+
onCreated?: LifecycleMethod<T>[];
|
|
16
|
+
onInjected?: LifecycleMethod<T>[];
|
|
14
17
|
}
|
|
15
|
-
export declare function readMetadata<T>(target: InjectionToken<T>): InjectableMetadata | null;
|
|
18
|
+
export declare function readMetadata<T>(target: InjectionToken<T>): InjectableMetadata<T> | null;
|
|
16
19
|
export declare function readInjector<T>(target: T): Injector | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAiBxD,MAAM,UAAU,YAAY,CAAI,MAAyB;IACvD,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/lib/metadata.ts"],"names":[],"mappings":"AAAC,MAAc,CAAC,QAAQ,KAAK,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAiB,MAAM,eAAe,CAAC;AAiBxD,MAAM,UAAU,YAAY,CAAI,MAAyB;IACvD,MAAM,QAAQ,GAAiC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEvE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,MAAS;IACvC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,QAAQ,CAAa,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|