@tsed/di 8.0.0-beta.2 → 8.0.0-beta.3
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/lib/browser/di.umd.min.js +1 -1
- package/lib/browser/di.umd.min.js.map +1 -1
- package/lib/esm/common/decorators/controller.js +2 -5
- package/lib/esm/common/decorators/controller.js.map +1 -1
- package/lib/esm/common/decorators/injectable.js +3 -2
- package/lib/esm/common/decorators/injectable.js.map +1 -1
- package/lib/esm/common/decorators/interceptor.js +2 -2
- package/lib/esm/common/domain/ControllerProvider.js.map +1 -1
- package/lib/esm/common/domain/Provider.js +6 -1
- package/lib/esm/common/domain/Provider.js.map +1 -1
- package/lib/esm/common/domain/ProviderType.js +0 -2
- package/lib/esm/common/domain/ProviderType.js.map +1 -1
- package/lib/esm/common/fn/injectable.js +56 -5
- package/lib/esm/common/fn/injectable.js.map +1 -1
- package/lib/esm/common/registries/GlobalProviders.js +1 -5
- package/lib/esm/common/registries/GlobalProviders.js.map +1 -1
- package/lib/esm/common/registries/ProviderRegistry.js +2 -71
- package/lib/esm/common/registries/ProviderRegistry.js.map +1 -1
- package/lib/esm/node/services/DILogger.js +1 -4
- package/lib/esm/node/services/DILogger.js.map +1 -1
- package/lib/types/common/decorators/controller.d.ts +1 -5
- package/lib/types/common/decorators/interceptor.d.ts +2 -2
- package/lib/types/common/domain/ControllerProvider.d.ts +7 -3
- package/lib/types/common/domain/Provider.d.ts +1 -0
- package/lib/types/common/domain/ProviderType.d.ts +0 -2
- package/lib/types/common/fn/inject.d.ts +1 -1
- package/lib/types/common/fn/injectable.d.ts +23 -5
- package/lib/types/common/registries/ProviderRegistry.d.ts +1 -53
- package/package.json +7 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isArrayOrArrayClass, useDecorators } from "@tsed/core";
|
|
2
2
|
import { Children, Path } from "@tsed/schema";
|
|
3
|
-
import {
|
|
3
|
+
import { controller } from "../fn/injectable.js";
|
|
4
4
|
function mapOptions(options) {
|
|
5
5
|
if (typeof options === "string" || options instanceof RegExp || isArrayOrArrayClass(options)) {
|
|
6
6
|
return {
|
|
@@ -40,10 +40,7 @@ function mapOptions(options) {
|
|
|
40
40
|
export function Controller(options) {
|
|
41
41
|
const { children = [], path, ...opts } = mapOptions(options);
|
|
42
42
|
return useDecorators((target) => {
|
|
43
|
-
|
|
44
|
-
provide: target,
|
|
45
|
-
...opts
|
|
46
|
-
});
|
|
43
|
+
controller(target, opts);
|
|
47
44
|
}, path && Path(path), Children(...children));
|
|
48
45
|
}
|
|
49
46
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/common/decorators/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAQ,aAAa,EAAC,MAAM,YAAY,CAAC;AACpE,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../../src/common/decorators/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,mBAAmB,EAAQ,aAAa,EAAC,MAAM,YAAY,CAAC;AACpE,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAG5C,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAW/C,SAAS,UAAU,CAAC,OAAY;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,MAAM,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7F,OAAO;YACL,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqC;IAC9D,MAAM,EAAC,QAAQ,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3D,OAAO,aAAa,CAClB,CAAC,MAAY,EAAE,EAAE;QACf,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC,EACD,IAAI,IAAI,IAAI,CAAC,IAAW,CAAC,EACzB,QAAQ,CAAC,GAAG,QAAQ,CAAC,CACtB,CAAC;AACJ,CAAC"}
|
|
@@ -19,10 +19,11 @@ import { injectable } from "../fn/injectable.js";
|
|
|
19
19
|
*/
|
|
20
20
|
export function Injectable(options = {}) {
|
|
21
21
|
return (target) => {
|
|
22
|
-
|
|
22
|
+
const opts = {
|
|
23
23
|
...options,
|
|
24
24
|
...(options.provide ? { useClass: target } : { provide: target })
|
|
25
|
-
}
|
|
25
|
+
};
|
|
26
|
+
injectable(opts.provide, opts);
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=injectable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU,CAAC,UAAiC,EAAE;IAC5D,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,
|
|
1
|
+
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/decorators/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,qBAAqB,CAAC;AAG/C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,UAAU,CAAC,UAAiC,EAAE;IAC5D,OAAO,CAAC,MAAW,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG;YACX,GAAG,OAAO;YACV,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;SAC9D,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ProviderType } from "../domain/ProviderType.js";
|
|
2
2
|
import { Injectable } from "./injectable.js";
|
|
3
3
|
/**
|
|
4
|
-
* The decorators `@
|
|
5
|
-
* All services annotated with `@
|
|
4
|
+
* The decorators `@Interceptor()` declare a new service can be injected in other service or controller on there `constructor`.
|
|
5
|
+
* All services annotated with `@Interceptor()` are constructed one time.
|
|
6
6
|
*
|
|
7
7
|
* > `@Service()` use the `reflect-metadata` to collect and inject service on controllers or other services.
|
|
8
8
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerProvider.js","sourceRoot":"","sources":["../../../../src/common/domain/ControllerProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ControllerProvider.js","sourceRoot":"","sources":["../../../../src/common/domain/ControllerProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAQ/C,MAAM,OAAO,kBAA4B,SAAQ,QAAW;IAG1D,YAAY,OAAsB,EAAE,UAA6B,EAAE;QACjE,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,UAAU,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,MAAM,CAAC,MAAM,CAClB;YACE,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;SACd,EACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,CAAC,CAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW,CAAC,WAA2C;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAChC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEjF,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC/C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -9,7 +9,9 @@ export class Provider {
|
|
|
9
9
|
this.type = ProviderType.PROVIDER;
|
|
10
10
|
this.provide = token;
|
|
11
11
|
this.useClass = token;
|
|
12
|
-
Object.assign(this,
|
|
12
|
+
Object.assign(this, {
|
|
13
|
+
...options
|
|
14
|
+
});
|
|
13
15
|
}
|
|
14
16
|
get token() {
|
|
15
17
|
return this._provide;
|
|
@@ -91,6 +93,9 @@ export class Provider {
|
|
|
91
93
|
get children() {
|
|
92
94
|
return this.store.get("childrenControllers", []);
|
|
93
95
|
}
|
|
96
|
+
set children(children) {
|
|
97
|
+
this.store.set("childrenControllers", children);
|
|
98
|
+
}
|
|
94
99
|
get(key) {
|
|
95
100
|
return this.store.get(key) || this._tokenStore.get(key);
|
|
96
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAO,MAAM,YAAY,CAAC;AAIjH,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAI/C,MAAM,OAAO,QAAQ;IAmBnB,YAAY,KAAuB,EAAE,UAA6B,EAAE;QAlBpE;;WAEG;QACI,SAAI,GAAiC,YAAY,CAAC,QAAQ,CAAC;QAgBhE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,KAAgB,CAAC;QAEjC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/common/domain/Provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export var ProviderType;
|
|
2
2
|
(function (ProviderType) {
|
|
3
3
|
ProviderType["VALUE"] = "value";
|
|
4
|
-
ProviderType["FACTORY"] = "factory";
|
|
5
|
-
ProviderType["SERVICE"] = "service";
|
|
6
4
|
ProviderType["PROVIDER"] = "provider";
|
|
7
5
|
ProviderType["MODULE"] = "module";
|
|
8
6
|
ProviderType["CONTROLLER"] = "controller";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderType.js","sourceRoot":"","sources":["../../../../src/common/domain/ProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"ProviderType.js","sourceRoot":"","sources":["../../../../src/common/domain/ProviderType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,yCAAyB,CAAA;IACzB,2CAA2B,CAAA;IAC3B,yCAAyB,CAAA;AAC3B,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB"}
|
|
@@ -1,6 +1,57 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import "../registries/ProviderRegistry.js";
|
|
2
|
+
import { ProviderType } from "../domain/ProviderType.js";
|
|
3
|
+
import { GlobalProviders } from "../registries/GlobalProviders.js";
|
|
4
|
+
export function providerBuilder(props, baseOpts = {}) {
|
|
5
|
+
return (token, options = {}) => {
|
|
6
|
+
const provider = GlobalProviders.merge(token, {
|
|
7
|
+
...options,
|
|
8
|
+
...baseOpts,
|
|
9
|
+
provide: token
|
|
10
|
+
});
|
|
11
|
+
return props.reduce((acc, prop) => {
|
|
12
|
+
return {
|
|
13
|
+
...acc,
|
|
14
|
+
[prop]: function (value) {
|
|
15
|
+
provider[prop] = value;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}, {
|
|
20
|
+
factory(factory) {
|
|
21
|
+
provider.useFactory = factory;
|
|
22
|
+
return this;
|
|
23
|
+
},
|
|
24
|
+
asyncFactory(asyncFactory) {
|
|
25
|
+
provider.useAsyncFactory = asyncFactory;
|
|
26
|
+
return this;
|
|
27
|
+
},
|
|
28
|
+
value(value) {
|
|
29
|
+
provider.useValue = value;
|
|
30
|
+
provider.type = ProviderType.VALUE;
|
|
31
|
+
return this;
|
|
32
|
+
},
|
|
33
|
+
class(k) {
|
|
34
|
+
provider.useClass = k;
|
|
35
|
+
return this;
|
|
36
|
+
},
|
|
37
|
+
store() {
|
|
38
|
+
return provider.store;
|
|
39
|
+
},
|
|
40
|
+
inspect() {
|
|
41
|
+
return provider;
|
|
42
|
+
},
|
|
43
|
+
token() {
|
|
44
|
+
return provider.token;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const Props = ["type", "scope", "path", "alias", "hooks", "deps", "resolvers", "imports", "configuration"];
|
|
50
|
+
export const injectable = providerBuilder(Props);
|
|
51
|
+
export const interceptor = providerBuilder(Props, {
|
|
52
|
+
type: ProviderType.INTERCEPTOR
|
|
53
|
+
});
|
|
54
|
+
export const controller = providerBuilder([...Props, "middlewares"], {
|
|
55
|
+
type: ProviderType.CONTROLLER
|
|
56
|
+
});
|
|
6
57
|
//# sourceMappingURL=injectable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/fn/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"injectable.js","sourceRoot":"","sources":["../../../../src/common/fn/injectable.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAM3C,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAGvD,OAAO,EAAC,eAAe,EAAC,MAAM,kCAAkC,CAAC;AAcjE,MAAM,UAAU,eAAe,CAA0C,KAAe,EAAE,WAA4C,EAAE;IACtI,OAAO,CACL,KAAY,EACZ,UAAuC,EAAE,EACiB,EAAE;QAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE;YAC5C,GAAG,OAAO;YACV,GAAG,QAAQ;YACX,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACZ,OAAO;gBACL,GAAG,GAAG;gBACN,CAAC,IAAI,CAAC,EAAE,UAAU,KAAU;oBACzB,QAAgB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC,EACD;YACE,OAAO,CAAC,OAAY;gBAClB,QAAQ,CAAC,UAAU,GAAG,OAAO,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACd,CAAC;YACD,YAAY,CAAC,YAAiB;gBAC5B,QAAQ,CAAC,eAAe,GAAG,YAAY,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,KAAU;gBACd,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC1B,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,CAAM;gBACV,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACtB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK;gBACH,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YACD,OAAO;gBACL,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,KAAK;gBACH,OAAO,QAAQ,CAAC,KAAc,CAAC;YACjC,CAAC;SAC0D,CAC9D,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAgBD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC3G,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAiC,KAAK,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAiC,KAAK,EAAE;IAChF,IAAI,EAAE,YAAY,CAAC,WAAW;CAC/B,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAA+D,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC,EAAE;IACjI,IAAI,EAAE,YAAY,CAAC,UAAU;CAC9B,CAAC,CAAC"}
|
|
@@ -36,11 +36,7 @@ export class GlobalProviderRegistry extends Map {
|
|
|
36
36
|
merge(target, options) {
|
|
37
37
|
const meta = this.createIfNotExists(target, options);
|
|
38
38
|
Object.keys(options).forEach((key) => {
|
|
39
|
-
|
|
40
|
-
// if (key === "type") {
|
|
41
|
-
// value = String(value);
|
|
42
|
-
// }
|
|
43
|
-
meta[key] = value;
|
|
39
|
+
meta[key] = options[key];
|
|
44
40
|
});
|
|
45
41
|
this.set(target, meta);
|
|
46
42
|
return meta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GlobalProviders.js","sourceRoot":"","sources":["../../../../src/common/registries/GlobalProviders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAO,MAAM,YAAY,CAAC;AAGlD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAOvD,MAAM,OAAO,sBAAuB,SAAQ,GAA4B;IACtE,SAAS,GAAyC,IAAI,GAAG,EAAE,CAAC;IAE5D;;;;OAIG;IACH,GAAG,CAAC,GAAkB;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAkB;QACpB,OAAO,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAC,GAAkB,EAAE,QAAkB;QACxC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAqB,EAAE,OAA8B;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnC,IAAI,
|
|
1
|
+
{"version":3,"file":"GlobalProviders.js","sourceRoot":"","sources":["../../../../src/common/registries/GlobalProviders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ProviderScope } from "../domain/ProviderScope.js";
|
|
1
|
+
import { ControllerProvider } from "../domain/ControllerProvider.js";
|
|
3
2
|
import { ProviderType } from "../domain/ProviderType.js";
|
|
4
3
|
import { GlobalProviders } from "./GlobalProviders.js";
|
|
5
|
-
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
GlobalProviders.createRegistry(ProviderType.CONTROLLER, Provider);
|
|
4
|
+
GlobalProviders.createRegistry(ProviderType.CONTROLLER, ControllerProvider);
|
|
9
5
|
/**
|
|
10
6
|
* Register a provider configuration.
|
|
11
7
|
* @param {ProviderOpts<any>} provider
|
|
12
8
|
*/
|
|
13
9
|
export function registerProvider(provider) {
|
|
14
|
-
if (!provider.provide) {
|
|
15
|
-
throw new Error("Provider.provide is required");
|
|
16
|
-
}
|
|
17
10
|
return GlobalProviders.merge(provider.provide, provider);
|
|
18
11
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Add a new value in the `ProviderRegistry`.
|
|
21
|
-
*
|
|
22
|
-
* #### Example with symbol definition
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* ```typescript
|
|
26
|
-
* import {registerValue, InjectorService} from "@tsed/di";
|
|
27
|
-
*
|
|
28
|
-
* const MyValue = Symbol.from("MyValue")
|
|
29
|
-
*
|
|
30
|
-
* registerValue({token: MyValue, useValue: "myValue"});
|
|
31
|
-
*
|
|
32
|
-
* @Service()
|
|
33
|
-
* export class OtherService {
|
|
34
|
-
* constructor(@Inject(MyValue) myValue: string){
|
|
35
|
-
* console.log(myValue); /// "myValue"
|
|
36
|
-
* }
|
|
37
|
-
* }
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export const registerValue = (provider, value) => {
|
|
41
|
-
if (!provider.provide) {
|
|
42
|
-
provider = {
|
|
43
|
-
provide: provider
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
provider = Object.assign({
|
|
47
|
-
scope: ProviderScope.SINGLETON,
|
|
48
|
-
useValue: value
|
|
49
|
-
}, provider, { type: ProviderType.VALUE });
|
|
50
|
-
GlobalProviders.merge(provider.provide, provider);
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Add a new controller in the `ProviderRegistry`. This controller will be built when `InjectorService` will be loaded.
|
|
54
|
-
*
|
|
55
|
-
* #### Example
|
|
56
|
-
*
|
|
57
|
-
* ```typescript
|
|
58
|
-
* import {registerController, InjectorService} from "@tsed/di";
|
|
59
|
-
*
|
|
60
|
-
* export default class MyController {
|
|
61
|
-
* constructor(){}
|
|
62
|
-
* transform() {
|
|
63
|
-
* return "test";
|
|
64
|
-
* }
|
|
65
|
-
* }
|
|
66
|
-
*
|
|
67
|
-
* registerController({provide: MyController});
|
|
68
|
-
* // or
|
|
69
|
-
* registerController(MyController);
|
|
70
|
-
*
|
|
71
|
-
* const injector = new InjectorService();
|
|
72
|
-
* injector.load();
|
|
73
|
-
*
|
|
74
|
-
* const myController = injector.get<MyController>(MyController);
|
|
75
|
-
* myController.getFoo(); // test
|
|
76
|
-
* ```
|
|
77
|
-
*
|
|
78
|
-
* @param provider Provider configuration.
|
|
79
|
-
*/
|
|
80
|
-
export const registerController = GlobalProviders.createRegisterFn(ProviderType.CONTROLLER);
|
|
81
12
|
//# sourceMappingURL=ProviderRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../../src/common/registries/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../../src/common/registries/ProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AAErD,eAAe,CAAC,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAa,QAA2E;IACtH,OAAO,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { Logger } from "@tsed/logger";
|
|
2
2
|
import { injectable } from "../../common/fn/injectable.js";
|
|
3
3
|
import { logger } from "../fn/logger.js";
|
|
4
|
-
injectable(
|
|
5
|
-
provide: Logger,
|
|
6
|
-
useFactory: logger
|
|
7
|
-
});
|
|
4
|
+
injectable(Logger).factory(logger);
|
|
8
5
|
//# sourceMappingURL=DILogger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DILogger.js","sourceRoot":"","sources":["../../../../src/node/services/DILogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,UAAU,CAAC
|
|
1
|
+
{"version":3,"file":"DILogger.js","sourceRoot":"","sources":["../../../../src/node/services/DILogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAEpC,OAAO,EAAC,UAAU,EAAC,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAEvC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { Type } from "@tsed/core";
|
|
2
|
+
import type { ControllerMiddlewares } from "../domain/ControllerProvider.js";
|
|
2
3
|
import { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
3
4
|
export type PathType = string | RegExp | (string | RegExp)[];
|
|
4
|
-
export interface ControllerMiddlewares {
|
|
5
|
-
useBefore: any[];
|
|
6
|
-
use: any[];
|
|
7
|
-
useAfter: any[];
|
|
8
|
-
}
|
|
9
5
|
export interface ControllerOptions extends Partial<ProviderOpts<any>> {
|
|
10
6
|
path?: PathType;
|
|
11
7
|
children?: Type<any>[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The decorators `@
|
|
3
|
-
* All services annotated with `@
|
|
2
|
+
* The decorators `@Interceptor()` declare a new service can be injected in other service or controller on there `constructor`.
|
|
3
|
+
* All services annotated with `@Interceptor()` are constructed one time.
|
|
4
4
|
*
|
|
5
5
|
* > `@Service()` use the `reflect-metadata` to collect and inject service on controllers or other services.
|
|
6
6
|
*
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { ControllerMiddlewares } from "../decorators/controller.js";
|
|
2
1
|
import { TokenProvider } from "../interfaces/TokenProvider.js";
|
|
3
2
|
import { Provider } from "./Provider.js";
|
|
3
|
+
export interface ControllerMiddlewares {
|
|
4
|
+
useBefore: TokenProvider[];
|
|
5
|
+
use: TokenProvider[];
|
|
6
|
+
useAfter: TokenProvider[];
|
|
7
|
+
}
|
|
4
8
|
export declare class ControllerProvider<T = any> extends Provider<T> {
|
|
5
9
|
tokenRouter: string;
|
|
6
10
|
constructor(provide: TokenProvider, options?: Partial<Provider>);
|
|
@@ -8,10 +12,10 @@ export declare class ControllerProvider<T = any> extends Provider<T> {
|
|
|
8
12
|
*
|
|
9
13
|
* @returns {any[]}
|
|
10
14
|
*/
|
|
11
|
-
get middlewares(): ControllerMiddlewares
|
|
15
|
+
get middlewares(): Partial<ControllerMiddlewares>;
|
|
12
16
|
/**
|
|
13
17
|
*
|
|
14
18
|
* @param middlewares
|
|
15
19
|
*/
|
|
16
|
-
set middlewares(middlewares: ControllerMiddlewares);
|
|
20
|
+
set middlewares(middlewares: Partial<ControllerMiddlewares>);
|
|
17
21
|
}
|
|
@@ -54,6 +54,7 @@ export declare class Provider<T = any> implements ProviderOpts<T> {
|
|
|
54
54
|
get configuration(): Partial<TsED.Configuration>;
|
|
55
55
|
set configuration(configuration: Partial<TsED.Configuration>);
|
|
56
56
|
get children(): TokenProvider[];
|
|
57
|
+
set children(children: TokenProvider[]);
|
|
57
58
|
get(key: string): any;
|
|
58
59
|
isAsync(): boolean;
|
|
59
60
|
clone(): Provider;
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import "../registries/ProviderRegistry.js";
|
|
2
|
+
import { Store, type Type } from "@tsed/core";
|
|
3
|
+
import { ControllerProvider } from "../domain/ControllerProvider.js";
|
|
4
|
+
import type { Provider } from "../domain/Provider.js";
|
|
5
|
+
import type { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
6
|
+
import type { TokenProvider } from "../interfaces/TokenProvider.js";
|
|
7
|
+
type ProviderBuilder<Token extends TokenProvider, BaseProvider, T extends object> = {
|
|
8
|
+
[K in keyof T as T[K] extends (...args: any[]) => any ? never : K]: (value: T[K]) => ProviderBuilder<Token, BaseProvider, T>;
|
|
9
|
+
} & {
|
|
10
|
+
inspect(): BaseProvider;
|
|
11
|
+
store(): Store;
|
|
12
|
+
token(): Token;
|
|
13
|
+
factory(f: (...args: unknown[]) => unknown): ProviderBuilder<Token, BaseProvider, T>;
|
|
14
|
+
asyncFactory(f: (...args: unknown[]) => Promise<unknown>): ProviderBuilder<Token, BaseProvider, T>;
|
|
15
|
+
value(v: unknown): ProviderBuilder<Token, BaseProvider, T>;
|
|
16
|
+
class(c: Type): ProviderBuilder<Token, BaseProvider, T>;
|
|
17
|
+
};
|
|
18
|
+
export declare function providerBuilder<Provider, Picked extends keyof Provider>(props: string[], baseOpts?: Partial<ProviderOpts<Provider>>): <Token extends TokenProvider>(token: Token, options?: Partial<ProviderOpts<Type>>) => ProviderBuilder<Token, Provider, Pick<Provider, Picked>>;
|
|
19
|
+
type PickedProps = "scope" | "path" | "alias" | "useFactory" | "useAsyncFactory" | "useValue" | "useClass" | "hooks" | "deps" | "resolvers" | "imports" | "configuration";
|
|
20
|
+
export declare const injectable: <Token extends TokenProvider>(token: Token, options?: Partial<ProviderOpts<Type>>) => ProviderBuilder<Token, Provider<any>, Pick<Provider<any>, "type" | PickedProps>>;
|
|
21
|
+
export declare const interceptor: <Token extends TokenProvider>(token: Token, options?: Partial<ProviderOpts<Type>>) => ProviderBuilder<Token, Provider<any>, Pick<Provider<any>, "type" | PickedProps>>;
|
|
22
|
+
export declare const controller: <Token extends TokenProvider>(token: Token, options?: Partial<ProviderOpts<Type>>) => ProviderBuilder<Token, ControllerProvider<any>, Pick<ControllerProvider<any>, "children" | "middlewares" | PickedProps>>;
|
|
23
|
+
export {};
|
|
@@ -1,58 +1,6 @@
|
|
|
1
|
-
import { Provider } from "../domain/Provider.js";
|
|
2
1
|
import type { ProviderOpts } from "../interfaces/ProviderOpts.js";
|
|
3
2
|
/**
|
|
4
3
|
* Register a provider configuration.
|
|
5
4
|
* @param {ProviderOpts<any>} provider
|
|
6
5
|
*/
|
|
7
|
-
export declare function registerProvider<Type = any>(provider: Partial<ProviderOpts<Type>>): Provider<any>;
|
|
8
|
-
/**
|
|
9
|
-
* Add a new value in the `ProviderRegistry`.
|
|
10
|
-
*
|
|
11
|
-
* #### Example with symbol definition
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* ```typescript
|
|
15
|
-
* import {registerValue, InjectorService} from "@tsed/di";
|
|
16
|
-
*
|
|
17
|
-
* const MyValue = Symbol.from("MyValue")
|
|
18
|
-
*
|
|
19
|
-
* registerValue({token: MyValue, useValue: "myValue"});
|
|
20
|
-
*
|
|
21
|
-
* @Service()
|
|
22
|
-
* export class OtherService {
|
|
23
|
-
* constructor(@Inject(MyValue) myValue: string){
|
|
24
|
-
* console.log(myValue); /// "myValue"
|
|
25
|
-
* }
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare const registerValue: (provider: any | ProviderOpts<any>, value?: any) => void;
|
|
30
|
-
/**
|
|
31
|
-
* Add a new controller in the `ProviderRegistry`. This controller will be built when `InjectorService` will be loaded.
|
|
32
|
-
*
|
|
33
|
-
* #### Example
|
|
34
|
-
*
|
|
35
|
-
* ```typescript
|
|
36
|
-
* import {registerController, InjectorService} from "@tsed/di";
|
|
37
|
-
*
|
|
38
|
-
* export default class MyController {
|
|
39
|
-
* constructor(){}
|
|
40
|
-
* transform() {
|
|
41
|
-
* return "test";
|
|
42
|
-
* }
|
|
43
|
-
* }
|
|
44
|
-
*
|
|
45
|
-
* registerController({provide: MyController});
|
|
46
|
-
* // or
|
|
47
|
-
* registerController(MyController);
|
|
48
|
-
*
|
|
49
|
-
* const injector = new InjectorService();
|
|
50
|
-
* injector.load();
|
|
51
|
-
*
|
|
52
|
-
* const myController = injector.get<MyController>(MyController);
|
|
53
|
-
* myController.getFoo(); // test
|
|
54
|
-
* ```
|
|
55
|
-
*
|
|
56
|
-
* @param provider Provider configuration.
|
|
57
|
-
*/
|
|
58
|
-
export declare const registerController: (provider: any, instance?: any) => void;
|
|
6
|
+
export declare function registerProvider<Type = any>(provider: Partial<ProviderOpts<Type>> & Pick<ProviderOpts<Type>, "provide">): import("../index.js").Provider<any>;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@tsed/di",
|
|
3
3
|
"description": "DI module for Ts.ED Framework",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "8.0.0-beta.
|
|
5
|
+
"version": "8.0.0-beta.3",
|
|
6
6
|
"source": "./src/index.ts",
|
|
7
7
|
"main": "./lib/esm/index.js",
|
|
8
8
|
"module": "./lib/esm/index.js",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"uuid": "^10.0.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@tsed/barrels": "8.0.0-beta.
|
|
33
|
-
"@tsed/core": "8.0.0-beta.
|
|
32
|
+
"@tsed/barrels": "8.0.0-beta.3",
|
|
33
|
+
"@tsed/core": "8.0.0-beta.3",
|
|
34
34
|
"@tsed/logger": "^6.7.8",
|
|
35
|
-
"@tsed/schema": "8.0.0-beta.
|
|
36
|
-
"@tsed/typescript": "8.0.0-beta.
|
|
35
|
+
"@tsed/schema": "8.0.0-beta.3",
|
|
36
|
+
"@tsed/typescript": "8.0.0-beta.3",
|
|
37
37
|
"cross-env": "7.0.3",
|
|
38
38
|
"eslint": "9.12.0",
|
|
39
39
|
"typescript": "5.4.5",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"webpack": "^5.75.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
|
-
"@tsed/core": "8.0.0-beta.
|
|
44
|
+
"@tsed/core": "8.0.0-beta.3",
|
|
45
45
|
"@tsed/logger": ">=6.7.5",
|
|
46
|
-
"@tsed/schema": "8.0.0-beta.
|
|
46
|
+
"@tsed/schema": "8.0.0-beta.3"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"@tsed/core": {
|