@tstdl/base 0.85.26 → 0.86.0-beta10
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/_container/decorators.d.ts +76 -0
- package/_container/decorators.js +110 -0
- package/_container/index.d.ts +10 -0
- package/_container/index.js +27 -0
- package/_container/interfaces.d.ts +16 -0
- package/_container/interfaces.js +26 -0
- package/_container/token.d.ts +18 -0
- package/_container/token.js +41 -0
- package/api/client/client.d.ts +2 -2
- package/api/client/client.js +5 -3
- package/api/server/api-controller.d.ts +2 -2
- package/api/server/api-controller.js +5 -4
- package/api/server/api-request-token.provider.js +2 -2
- package/api/server/gateway.d.ts +5 -6
- package/api/server/gateway.js +25 -12
- package/api/server/module.js +4 -4
- package/api/server/tokens.d.ts +4 -1
- package/api/server/tokens.js +8 -2
- package/application/application.d.ts +13 -10
- package/application/application.js +38 -45
- package/authentication/client/api.client.js +3 -3
- package/authentication/client/authentication.service.d.ts +4 -4
- package/authentication/client/authentication.service.js +20 -21
- package/authentication/client/http-client.middleware.d.ts +3 -5
- package/authentication/client/http-client.middleware.js +3 -12
- package/authentication/client/module.d.ts +2 -1
- package/authentication/client/module.js +15 -7
- package/authentication/client/tokens.d.ts +2 -2
- package/authentication/client/tokens.js +5 -4
- package/authentication/server/authentication-api-request-token.provider.js +2 -2
- package/authentication/server/authentication-secret-requirements.validator.js +2 -2
- package/authentication/server/authentication.service.d.ts +2 -2
- package/authentication/server/authentication.service.js +9 -9
- package/authentication/server/module.d.ts +2 -1
- package/authentication/server/module.js +8 -7
- package/authentication/server/mongo/mongo-authentication-credentials.repository.d.ts +3 -3
- package/authentication/server/mongo/mongo-authentication-credentials.repository.js +4 -4
- package/authentication/server/mongo/mongo-authentication-session.repository.d.ts +3 -3
- package/authentication/server/mongo/mongo-authentication-session.repository.js +4 -4
- package/browser/browser-context-controller.d.ts +4 -4
- package/browser/browser-context-controller.js +15 -9
- package/browser/browser-controller.d.ts +12 -5
- package/browser/browser-controller.js +24 -10
- package/browser/browser.service.d.ts +12 -6
- package/browser/browser.service.js +13 -10
- package/browser/module.js +2 -2
- package/container/decorators.d.ts +2 -76
- package/container/decorators.js +12 -88
- package/container/index.d.ts +0 -7
- package/container/index.js +0 -7
- package/container/interfaces.d.ts +2 -16
- package/container/interfaces.js +3 -4
- package/container/token.d.ts +2 -18
- package/container/token.js +4 -19
- package/core.d.ts +4 -2
- package/core.js +15 -8
- package/database/mongo/classes.d.ts +5 -5
- package/database/mongo/classes.js +5 -4
- package/database/mongo/module.js +24 -16
- package/database/mongo/mongo-entity-repository.d.ts +2 -2
- package/database/mongo/mongo-entity-repository.js +2 -2
- package/disposable/async-disposer.d.ts +4 -4
- package/distributed-loop/distributed-loop.d.ts +3 -3
- package/distributed-loop/distributed-loop.js +3 -3
- package/distributed-loop/provider.js +2 -2
- package/examples/api/authentication.js +17 -10
- package/examples/api/basic-overview.js +4 -5
- package/examples/api/custom-authentication.js +9 -6
- package/examples/api/streaming.js +5 -5
- package/examples/browser/basic.js +5 -5
- package/examples/http/client.js +6 -4
- package/examples/mail/basic.js +9 -4
- package/examples/pdf/basic.js +9 -5
- package/examples/template/basic.js +8 -6
- package/function/log.js +1 -1
- package/http/client/adapters/undici-http-client.adapter.js +7 -6
- package/http/client/http-client-options.d.ts +0 -5
- package/http/client/http-client-options.js +0 -4
- package/http/client/http-client.d.ts +5 -8
- package/http/client/http-client.js +10 -7
- package/http/client/middleware.d.ts +6 -0
- package/http/client/middleware.js +16 -0
- package/http/client/module.d.ts +6 -1
- package/http/client/module.js +10 -5
- package/http/client/tokens.d.ts +2 -0
- package/http/client/tokens.js +25 -0
- package/http/server/node/module.js +2 -2
- package/http/server/node/node-http-server.d.ts +1 -4
- package/http/server/node/node-http-server.js +3 -7
- package/image-service/imgproxy/imgproxy-image-service.d.ts +6 -8
- package/image-service/imgproxy/imgproxy-image-service.js +17 -16
- package/injector/decorators.d.ts +12 -6
- package/injector/decorators.js +14 -0
- package/injector/index.d.ts +11 -0
- package/injector/index.js +28 -0
- package/injector/inject.d.ts +6 -1
- package/injector/inject.js +14 -2
- package/injector/injector.d.ts +14 -34
- package/injector/injector.js +91 -48
- package/injector/interfaces.d.ts +7 -5
- package/injector/provider.d.ts +19 -14
- package/injector/token.d.ts +10 -3
- package/injector/token.js +1 -1
- package/injector/type-info.d.ts +2 -0
- package/injector/types.d.ts +13 -7
- package/key-value-store/key-value.store.d.ts +3 -3
- package/key-value-store/key-value.store.js +1 -1
- package/key-value-store/mongo/module.js +4 -4
- package/key-value-store/mongo/mongo-key-value-store.provider.js +2 -2
- package/key-value-store/mongo/mongo-key-value.repository.d.ts +3 -3
- package/key-value-store/mongo/mongo-key-value.repository.js +4 -4
- package/key-value-store/mongo/mongo-key-value.store.js +3 -3
- package/key-value-store/mongo/tokens.d.ts +1 -1
- package/key-value-store/mongo/tokens.js +1 -1
- package/lock/lock.d.ts +3 -2
- package/lock/lock.js +1 -0
- package/lock/mongo/lock.js +4 -4
- package/lock/mongo/module.js +3 -3
- package/lock/mongo/mongo-lock-repository.d.ts +3 -3
- package/lock/mongo/mongo-lock-repository.js +3 -3
- package/lock/mongo/provider.js +5 -5
- package/lock/provider.d.ts +3 -2
- package/lock/provider.js +1 -0
- package/lock/web/module.js +3 -3
- package/lock/web/web-lock.js +2 -2
- package/lock/web/web-lock.provider.js +3 -3
- package/logger/console/logger.js +2 -2
- package/logger/logger.d.ts +3 -2
- package/logger/logger.js +1 -0
- package/mail/clients/nodemailer.mail-client.js +6 -5
- package/mail/mail.client.d.ts +3 -2
- package/mail/mail.client.js +1 -0
- package/mail/mail.service.js +7 -7
- package/mail/module.js +5 -5
- package/mail/repositories/mongo-mail-log.repository.d.ts +3 -3
- package/mail/repositories/mongo-mail-log.repository.js +3 -3
- package/mail/tokens.d.ts +1 -1
- package/mail/tokens.js +2 -2
- package/message-bus/broadcast-channel/broadcast-channel-message-bus-provider.js +3 -3
- package/message-bus/broadcast-channel/broadcast-channel-message-bus.d.ts +1 -1
- package/message-bus/broadcast-channel/broadcast-channel-message-bus.js +3 -3
- package/message-bus/broadcast-channel/module.js +3 -3
- package/message-bus/local/local-message-bus-provider.js +4 -4
- package/message-bus/local/local-message-bus.d.ts +1 -1
- package/message-bus/local/local-message-bus.js +3 -3
- package/message-bus/local/module.js +3 -3
- package/message-bus/message-bus.d.ts +3 -3
- package/message-bus/message-bus.js +1 -0
- package/migration/index.d.ts +1 -1
- package/migration/index.js +1 -1
- package/migration/migrator.js +4 -4
- package/migration/mongo/migration-state-repository.d.ts +3 -3
- package/migration/mongo/migration-state-repository.js +4 -4
- package/migration/mongo/module.js +2 -2
- package/module/modules/web-server.module.d.ts +5 -10
- package/module/modules/web-server.module.js +16 -36
- package/notification/notification.service.js +2 -2
- package/object-storage/object-storage.d.ts +3 -3
- package/object-storage/object-storage.js +1 -0
- package/object-storage/s3/s3.object-storage-provider.js +6 -5
- package/object-storage/s3/s3.object-storage.d.ts +2 -2
- package/object-storage/s3/s3.object-storage.js +4 -4
- package/openid-connect/cached-oidc-configuration.service.js +3 -3
- package/openid-connect/index.d.ts +1 -1
- package/openid-connect/index.js +3 -3
- package/openid-connect/mongo-oidc-state.repository.d.ts +3 -3
- package/openid-connect/mongo-oidc-state.repository.js +6 -5
- package/openid-connect/oidc-configuration.service.js +2 -2
- package/openid-connect/oidc.service.js +4 -4
- package/package.json +1 -1
- package/pdf/pdf.service.d.ts +3 -3
- package/pdf/pdf.service.js +5 -5
- package/process-shutdown.d.ts +2 -2
- package/process-shutdown.js +6 -8
- package/queue/mongo/mongo-job.repository.d.ts +3 -3
- package/queue/mongo/mongo-job.repository.js +4 -4
- package/queue/mongo/queue.js +4 -4
- package/queue/mongo/queue.provider.d.ts +3 -3
- package/queue/mongo/queue.provider.js +8 -6
- package/queue/queue.d.ts +3 -3
- package/queue/queue.js +1 -1
- package/search-index/elastic/config.d.ts +3 -3
- package/search-index/elastic/config.js +4 -3
- package/search-index/elastic/module.d.ts +1 -3
- package/search-index/elastic/module.js +21 -18
- package/search-index/elastic/search-index.d.ts +2 -2
- package/search-index/elastic/search-index.js +2 -2
- package/templates/module.d.ts +2 -2
- package/templates/module.js +12 -26
- package/templates/providers/file.template-provider.d.ts +3 -3
- package/templates/providers/file.template-provider.js +5 -4
- package/templates/providers/memory.template-provider.js +2 -2
- package/templates/renderers/handlebars.template-renderer.js +2 -2
- package/templates/renderers/jsx.template-renderer.js +2 -2
- package/templates/renderers/mjml.template-renderer.js +3 -3
- package/templates/renderers/string.template-renderer.js +2 -2
- package/templates/resolvers/file.template-resolver.d.ts +3 -3
- package/templates/resolvers/file.template-resolver.js +6 -5
- package/templates/resolvers/jsx.template-resolver.js +2 -2
- package/templates/resolvers/string.template-resolver.js +2 -2
- package/templates/template-renderer.provider.js +3 -3
- package/templates/template-resolver.provider.js +3 -3
- package/templates/template.service.js +4 -4
- package/templates/tokens.d.ts +2 -2
- package/templates/tokens.js +3 -3
- package/text/dynamic-text.model.js +3 -4
- package/text/localization.service.js +3 -3
- package/theme/theme-service.d.ts +1 -1
- package/theme/theme-service.js +7 -6
- package/tokens.d.ts +1 -1
- package/tokens.js +2 -2
- /package/{container → _container}/container.d.ts +0 -0
- /package/{container → _container}/container.js +0 -0
- /package/{container → _container}/provider.d.ts +0 -0
- /package/{container → _container}/provider.js +0 -0
- /package/{container → _container}/resolve-chain.d.ts +0 -0
- /package/{container → _container}/resolve-chain.js +0 -0
- /package/{container → _container}/resolve.error.d.ts +0 -0
- /package/{container → _container}/resolve.error.js +0 -0
- /package/{container → _container}/type-info.d.ts +0 -0
- /package/{container → _container}/type-info.js +0 -0
- /package/{container → _container}/types.d.ts +0 -0
- /package/{container → _container}/types.js +0 -0
- /package/{container → _container}/utils.d.ts +0 -0
- /package/{container → _container}/utils.js +0 -0
package/examples/pdf/basic.js
CHANGED
|
@@ -4,14 +4,17 @@ var import_node_path = require("node:path");
|
|
|
4
4
|
var import_node_url = require("node:url");
|
|
5
5
|
var import_application = require("../../application/application.js");
|
|
6
6
|
var import_browser_service = require("../../browser/browser.service.js");
|
|
7
|
-
var import_container = require("../../container/index.js");
|
|
8
7
|
var import_core = require("../../core.js");
|
|
8
|
+
var import_inject = require("../../injector/inject.js");
|
|
9
|
+
var import_injector = require("../../injector/injector.js");
|
|
9
10
|
var import_pdf_service = require("../../pdf/pdf.service.js");
|
|
10
11
|
var import_module = require("../../templates/module.js");
|
|
11
12
|
var import_file_template_provider = require("../../templates/providers/file.template-provider.js");
|
|
12
13
|
var import_handlebars_template_renderer = require("../../templates/renderers/handlebars.template-renderer.js");
|
|
13
14
|
var import_mjml_template_renderer = require("../../templates/renderers/mjml.template-renderer.js");
|
|
15
|
+
var import_string_template_renderer = require("../../templates/renderers/string.template-renderer.js");
|
|
14
16
|
var import_file_template_resolver = require("../../templates/resolvers/file.template-resolver.js");
|
|
17
|
+
var import_string_template_resolver = require("../../templates/resolvers/string.template-resolver.js");
|
|
15
18
|
const import_meta = {};
|
|
16
19
|
let dirname;
|
|
17
20
|
try {
|
|
@@ -22,14 +25,15 @@ try {
|
|
|
22
25
|
(0, import_core.configureTstdl)();
|
|
23
26
|
(0, import_module.configureTemplates)({
|
|
24
27
|
templateProvider: import_file_template_provider.FileTemplateProvider,
|
|
25
|
-
templateResolvers: [import_file_template_resolver.FileTemplateResolver],
|
|
26
|
-
templateRenderers: [import_mjml_template_renderer.MjmlTemplateRenderer, import_handlebars_template_renderer.HandlebarsTemplateRenderer]
|
|
28
|
+
templateResolvers: [import_file_template_resolver.FileTemplateResolver, import_string_template_resolver.StringTemplateResolver],
|
|
29
|
+
templateRenderers: [import_mjml_template_renderer.MjmlTemplateRenderer, import_handlebars_template_renderer.HandlebarsTemplateRenderer, import_string_template_renderer.StringTemplateRenderer]
|
|
27
30
|
});
|
|
28
31
|
(0, import_file_template_provider.configureFileTemplateProvider)({ basePath: (0, import_node_path.resolve)(dirname, "templates") });
|
|
29
32
|
(0, import_file_template_resolver.configureFileTemplateResolver)({ basePath: (0, import_node_path.resolve)(dirname.replace("dist", "source"), "templates") });
|
|
30
33
|
async function main() {
|
|
31
|
-
const
|
|
32
|
-
const
|
|
34
|
+
const injector = (0, import_inject.inject)(import_injector.Injector);
|
|
35
|
+
const browserService = await injector.resolveAsync(import_browser_service.BrowserService);
|
|
36
|
+
const pdfService = await injector.resolveAsync(import_pdf_service.PdfService);
|
|
33
37
|
const [result1, result2] = await Promise.all([
|
|
34
38
|
pdfService.renderTemplate("hello-name", { name: "Max Mustermann" }),
|
|
35
39
|
pdfService.renderUrl("https://google.de")
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var import_node_path = require("node:path");
|
|
3
|
+
var import_node_url = require("node:url");
|
|
2
4
|
var import_application = require("../../application/application.js");
|
|
3
|
-
var import_container = require("../../container/index.js");
|
|
4
5
|
var import_core = require("../../core.js");
|
|
6
|
+
var import_inject = require("../../injector/inject.js");
|
|
5
7
|
var import_templates = require("../../templates/index.js");
|
|
6
8
|
var import_file_template_provider = require("../../templates/providers/file.template-provider.js");
|
|
7
9
|
var import_handlebars_template_renderer = require("../../templates/renderers/handlebars.template-renderer.js");
|
|
8
10
|
var import_jsx_template_renderer = require("../../templates/renderers/jsx.template-renderer.js");
|
|
11
|
+
var import_string_template_renderer = require("../../templates/renderers/string.template-renderer.js");
|
|
9
12
|
var import_file_template_resolver = require("../../templates/resolvers/file.template-resolver.js");
|
|
10
13
|
var import_jsx_template_resolver = require("../../templates/resolvers/jsx.template-resolver.js");
|
|
11
|
-
var
|
|
12
|
-
var import_node_url = require("node:url");
|
|
14
|
+
var import_string_template_resolver = require("../../templates/resolvers/string.template-resolver.js");
|
|
13
15
|
const import_meta = {};
|
|
14
16
|
let dirname;
|
|
15
17
|
try {
|
|
@@ -20,13 +22,13 @@ try {
|
|
|
20
22
|
(0, import_core.configureTstdl)();
|
|
21
23
|
(0, import_templates.configureTemplates)({
|
|
22
24
|
templateProvider: import_file_template_provider.FileTemplateProvider,
|
|
23
|
-
templateResolvers: [import_file_template_resolver.FileTemplateResolver, import_jsx_template_resolver.JsxTemplateResolver],
|
|
24
|
-
templateRenderers: [import_handlebars_template_renderer.HandlebarsTemplateRenderer, import_jsx_template_renderer.JsxTemplateRenderer]
|
|
25
|
+
templateResolvers: [import_file_template_resolver.FileTemplateResolver, import_jsx_template_resolver.JsxTemplateResolver, import_string_template_resolver.StringTemplateResolver],
|
|
26
|
+
templateRenderers: [import_handlebars_template_renderer.HandlebarsTemplateRenderer, import_jsx_template_renderer.JsxTemplateRenderer, import_string_template_renderer.StringTemplateRenderer]
|
|
25
27
|
});
|
|
26
28
|
(0, import_file_template_provider.configureFileTemplateProvider)({ basePath: (0, import_node_path.resolve)(dirname, "templates") });
|
|
27
29
|
(0, import_file_template_resolver.configureFileTemplateResolver)({ basePath: (0, import_node_path.resolve)(dirname.replace("dist", "source"), "templates") });
|
|
28
30
|
async function test() {
|
|
29
|
-
const templateService =
|
|
31
|
+
const templateService = (0, import_inject.inject)(import_templates.TemplateService);
|
|
30
32
|
const handlebarsResult = await templateService.render("hello-name", { name: "Max Mustermann" });
|
|
31
33
|
const jsxResult = await templateService.render("hello-jsx", { name: "Max Mustermann" });
|
|
32
34
|
console.log({
|
package/function/log.js
CHANGED
|
@@ -28,7 +28,7 @@ function wrapLog(fn, options) {
|
|
|
28
28
|
const log = options?.logger?.trace.bind(options.logger) ?? console.log.bind(console);
|
|
29
29
|
const wrapped = {
|
|
30
30
|
[fnName](...args) {
|
|
31
|
-
const argString = args.map((arg) => (0, import_type_guards.isPrimitive)(arg) ? arg : (0, import_type_of.typeOf)(arg)).join(", ");
|
|
31
|
+
const argString = args.map((arg) => (0, import_type_guards.isPrimitive)(arg) ? (0, import_type_guards.isString)(arg) ? `"${arg}"` : String(arg) : (0, import_type_of.typeOf)(arg)).join(", ");
|
|
32
32
|
log(`[call: ${fnName}(${argString})]`);
|
|
33
33
|
return Reflect.apply(fn, this, args);
|
|
34
34
|
}
|
|
@@ -22,13 +22,14 @@ __export(undici_http_client_adapter_exports, {
|
|
|
22
22
|
configureUndiciHttpClientAdapter: () => configureUndiciHttpClientAdapter
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(undici_http_client_adapter_exports);
|
|
25
|
-
var
|
|
25
|
+
var import_node_stream = require("node:stream");
|
|
26
|
+
var import_undici = require("undici");
|
|
26
27
|
var import_http_headers = require("../../../http/http-headers.js");
|
|
27
28
|
var import_http_error = require("../../../http/http.error.js");
|
|
29
|
+
var import_injector = require("../../../injector/index.js");
|
|
30
|
+
var import_injector2 = require("../../../injector/injector.js");
|
|
28
31
|
var import_array = require("../../../utils/array/array.js");
|
|
29
32
|
var import_type_guards = require("../../../utils/type-guards.js");
|
|
30
|
-
var import_node_stream = require("node:stream");
|
|
31
|
-
var import_undici = require("undici");
|
|
32
33
|
var import_http_client_response = require("../http-client-response.js");
|
|
33
34
|
var import_http_client_adapter = require("../http-client.adapter.js");
|
|
34
35
|
var __decorate = function(decorators, target, key, desc) {
|
|
@@ -108,13 +109,13 @@ let UndiciHttpClientAdapter = class UndiciHttpClientAdapter2 extends import_http
|
|
|
108
109
|
}
|
|
109
110
|
};
|
|
110
111
|
UndiciHttpClientAdapter = __decorate([
|
|
111
|
-
(0,
|
|
112
|
-
__param(0, (0,
|
|
112
|
+
(0, import_injector.Singleton)({ defaultArgumentProvider: () => defaultOptions }),
|
|
113
|
+
__param(0, (0, import_injector.InjectArg)()),
|
|
113
114
|
__metadata("design:paramtypes", [Object])
|
|
114
115
|
], UndiciHttpClientAdapter);
|
|
115
116
|
function configureUndiciHttpClientAdapter(options = {}) {
|
|
116
117
|
defaultOptions = options;
|
|
117
118
|
if (options.register ?? true) {
|
|
118
|
-
|
|
119
|
+
import_injector2.Injector.register(import_http_client_adapter.HttpClientAdapter, { useToken: UndiciHttpClientAdapter });
|
|
119
120
|
}
|
|
120
121
|
}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
import type { HttpClientMiddleware } from './http-client.js';
|
|
2
1
|
export declare class HttpClientOptions {
|
|
3
2
|
/**
|
|
4
3
|
* base url for requests when only path is provided
|
|
5
4
|
*/
|
|
6
5
|
baseUrl?: string;
|
|
7
|
-
/**
|
|
8
|
-
* middlewares to add
|
|
9
|
-
*/
|
|
10
|
-
middleware?: HttpClientMiddleware[];
|
|
11
6
|
/**
|
|
12
7
|
* enables parsing of response errors with registered error handlers via {@link parseErrorResponse}
|
|
13
8
|
* @default true
|
|
@@ -26,10 +26,6 @@ class HttpClientOptions {
|
|
|
26
26
|
* base url for requests when only path is provided
|
|
27
27
|
*/
|
|
28
28
|
baseUrl;
|
|
29
|
-
/**
|
|
30
|
-
* middlewares to add
|
|
31
|
-
*/
|
|
32
|
-
middleware;
|
|
33
29
|
/**
|
|
34
30
|
* enables parsing of response errors with registered error handlers via {@link parseErrorResponse}
|
|
35
31
|
* @default true
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { resolveArgumentType } from '../../injector/index.js';
|
|
2
|
+
import type { Resolvable } from '../../injector/interfaces.js';
|
|
3
3
|
import type { OneOrMany, UndefinableJson } from '../../types.js';
|
|
4
|
-
import type { AsyncMiddleware, AsyncMiddlewareHandler, AsyncMiddlewareNext } from '../../utils/middleware.js';
|
|
5
4
|
import type { HttpMethod, HttpValue } from '../types.js';
|
|
6
5
|
import { HttpClientOptions } from './http-client-options.js';
|
|
7
6
|
import type { HttpClientRequestOptions } from './http-client-request.js';
|
|
8
7
|
import { HttpClientRequest } from './http-client-request.js';
|
|
9
8
|
import type { HttpClientResponse } from './http-client-response.js';
|
|
10
9
|
import { HttpClientAdapter } from './http-client.adapter.js';
|
|
11
|
-
|
|
12
|
-
export type HttpClientMiddleware = AsyncMiddleware<HttpClientRequest, HttpClientResponse>;
|
|
13
|
-
export type HttpClientMiddlewareNext = AsyncMiddlewareNext<HttpClientRequest, HttpClientResponse>;
|
|
10
|
+
import type { HttpClientMiddleware } from './middleware.js';
|
|
14
11
|
export type HttpClientArgument = HttpClientOptions;
|
|
15
|
-
export declare class HttpClient implements
|
|
12
|
+
export declare class HttpClient implements Resolvable<HttpClientArgument> {
|
|
16
13
|
private readonly adapter;
|
|
17
14
|
private readonly headers;
|
|
18
15
|
private readonly middleware;
|
|
@@ -20,7 +17,7 @@ export declare class HttpClient implements Injectable<HttpClientArgument> {
|
|
|
20
17
|
private callHandler;
|
|
21
18
|
readonly options: HttpClientOptions;
|
|
22
19
|
readonly [resolveArgumentType]: HttpClientOptions;
|
|
23
|
-
constructor(adapter: HttpClientAdapter, options?: HttpClientOptions);
|
|
20
|
+
constructor(adapter: HttpClientAdapter, options?: HttpClientOptions, middlewares?: HttpClientMiddleware[]);
|
|
24
21
|
addMiddleware(middleware: HttpClientMiddleware): void;
|
|
25
22
|
setDefaultHeader(name: string, value: OneOrMany<HttpValue>): void;
|
|
26
23
|
deleteDefaultHeader(name: string): void;
|
|
@@ -22,7 +22,7 @@ __export(http_client_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(http_client_exports);
|
|
24
24
|
var import_response = require("../../api/response.js");
|
|
25
|
-
var
|
|
25
|
+
var import_injector = require("../../injector/index.js");
|
|
26
26
|
var import_array = require("../../utils/array/array.js");
|
|
27
27
|
var import_base64 = require("../../utils/base64.js");
|
|
28
28
|
var import_encoding = require("../../utils/encoding.js");
|
|
@@ -37,6 +37,7 @@ var import_types = require("../types.js");
|
|
|
37
37
|
var import_http_client_options = require("./http-client-options.js");
|
|
38
38
|
var import_http_client_request = require("./http-client-request.js");
|
|
39
39
|
var import_http_client_adapter = require("./http-client.adapter.js");
|
|
40
|
+
var import_tokens = require("./tokens.js");
|
|
40
41
|
var __decorate = function(decorators, target, key, desc) {
|
|
41
42
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
42
43
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
@@ -63,10 +64,10 @@ let HttpClient = class HttpClient2 {
|
|
|
63
64
|
internalMiddleware;
|
|
64
65
|
callHandler;
|
|
65
66
|
options;
|
|
66
|
-
constructor(adapter, options = {}) {
|
|
67
|
+
constructor(adapter, options = {}, middlewares = []) {
|
|
67
68
|
this.adapter = adapter;
|
|
68
69
|
this.options = options;
|
|
69
|
-
this.middleware =
|
|
70
|
+
this.middleware = middlewares;
|
|
70
71
|
this.headers = new import_http_headers.HttpHeaders();
|
|
71
72
|
this.internalMiddleware = [
|
|
72
73
|
getBuildRequestUrlMiddleware(options.baseUrl),
|
|
@@ -224,10 +225,12 @@ let HttpClient = class HttpClient2 {
|
|
|
224
225
|
}
|
|
225
226
|
};
|
|
226
227
|
HttpClient = __decorate([
|
|
227
|
-
(0,
|
|
228
|
-
__param(1, (0,
|
|
229
|
-
__param(1, (0,
|
|
230
|
-
|
|
228
|
+
(0, import_injector.Singleton)(),
|
|
229
|
+
__param(1, (0, import_injector.Optional)()),
|
|
230
|
+
__param(1, (0, import_injector.InjectArg)()),
|
|
231
|
+
__param(2, (0, import_injector.InjectAll)(import_tokens.HTTP_CLIENT_MIDDLEWARE)),
|
|
232
|
+
__param(2, (0, import_injector.Optional)()),
|
|
233
|
+
__metadata("design:paramtypes", [import_http_client_adapter.HttpClientAdapter, import_http_client_options.HttpClientOptions, Array])
|
|
231
234
|
], HttpClient);
|
|
232
235
|
function getBuildRequestUrlMiddleware(baseUrl) {
|
|
233
236
|
async function buildUrlParametersMiddleware(request, next) {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AsyncMiddleware, AsyncMiddlewareHandler, AsyncMiddlewareNext } from '../../utils/middleware.js';
|
|
2
|
+
import type { HttpClientRequest } from './http-client-request.js';
|
|
3
|
+
import type { HttpClientResponse } from './http-client-response.js';
|
|
4
|
+
export type HttpClientHandler = AsyncMiddlewareHandler<HttpClientRequest, HttpClientResponse>;
|
|
5
|
+
export type HttpClientMiddleware = AsyncMiddleware<HttpClientRequest, HttpClientResponse>;
|
|
6
|
+
export type HttpClientMiddlewareNext = AsyncMiddlewareNext<HttpClientRequest, HttpClientResponse>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var middleware_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(middleware_exports);
|
package/http/client/module.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { Type } from '../../types.js';
|
|
2
2
|
import { HttpClientOptions } from './http-client-options.js';
|
|
3
3
|
import { HttpClientAdapter } from './http-client.adapter.js';
|
|
4
|
+
import type { HttpClientMiddleware } from './middleware.js';
|
|
4
5
|
export type HttpClientModuleConfig = HttpClientOptions & {
|
|
5
6
|
adapter?: Type<HttpClientAdapter>;
|
|
7
|
+
/**
|
|
8
|
+
* middlewares to add
|
|
9
|
+
*/
|
|
10
|
+
middleware?: HttpClientMiddleware[];
|
|
6
11
|
};
|
|
7
|
-
export declare function configureHttpClient({ adapter, ...rest }: HttpClientModuleConfig): void;
|
|
12
|
+
export declare function configureHttpClient({ adapter, middleware, ...rest }: HttpClientModuleConfig): void;
|
package/http/client/module.js
CHANGED
|
@@ -21,20 +21,25 @@ __export(module_exports, {
|
|
|
21
21
|
configureHttpClient: () => configureHttpClient
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(module_exports);
|
|
24
|
-
var
|
|
24
|
+
var import_injector = require("../../injector/injector.js");
|
|
25
25
|
var import_type_guards = require("../../utils/type-guards.js");
|
|
26
26
|
var import_http_client_options = require("./http-client-options.js");
|
|
27
27
|
var import_http_client_adapter = require("./http-client.adapter.js");
|
|
28
|
+
var import_tokens = require("./tokens.js");
|
|
28
29
|
let options = {};
|
|
29
|
-
function configureHttpClient({ adapter, ...rest }) {
|
|
30
|
+
function configureHttpClient({ adapter, middleware, ...rest }) {
|
|
30
31
|
if ((0, import_type_guards.isDefined)(adapter)) {
|
|
31
|
-
|
|
32
|
+
import_injector.Injector.register(import_http_client_adapter.HttpClientAdapter, { useToken: adapter });
|
|
32
33
|
}
|
|
33
34
|
options = {
|
|
34
35
|
...options,
|
|
35
36
|
baseUrl: rest.baseUrl ?? options.baseUrl,
|
|
36
|
-
middleware: [...options.middleware ?? [], ...rest.middleware ?? []],
|
|
37
37
|
enableErrorHandling: rest.enableErrorHandling ?? options.enableErrorHandling
|
|
38
38
|
};
|
|
39
|
-
|
|
39
|
+
if ((0, import_type_guards.isDefined)(middleware)) {
|
|
40
|
+
for (const m of middleware) {
|
|
41
|
+
import_injector.Injector.register(import_tokens.HTTP_CLIENT_MIDDLEWARE, { useToken: m }, { multi: true });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
import_injector.Injector.register(import_http_client_options.HttpClientOptions, { useValue: options });
|
|
40
45
|
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var tokens_exports = {};
|
|
20
|
+
__export(tokens_exports, {
|
|
21
|
+
HTTP_CLIENT_MIDDLEWARE: () => HTTP_CLIENT_MIDDLEWARE
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(tokens_exports);
|
|
24
|
+
var import_token = require("../../injector/token.js");
|
|
25
|
+
const HTTP_CLIENT_MIDDLEWARE = (0, import_token.injectionToken)("HttpClientMiddleware");
|
|
@@ -21,9 +21,9 @@ __export(module_exports, {
|
|
|
21
21
|
configureNodeHttpServer: () => configureNodeHttpServer
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(module_exports);
|
|
24
|
-
var
|
|
24
|
+
var import_injector = require("../../../injector/injector.js");
|
|
25
25
|
var import_http_server = require("../http-server.js");
|
|
26
26
|
var import_node_http_server = require("./node-http-server.js");
|
|
27
27
|
function configureNodeHttpServer() {
|
|
28
|
-
|
|
28
|
+
import_injector.Injector.registerSingleton(import_http_server.HttpServer, { useToken: import_node_http_server.NodeHttpServer });
|
|
29
29
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import * as Http from 'node:http';
|
|
3
|
-
import type { AfterResolve } from '../../../container/index.js';
|
|
4
|
-
import { afterResolve } from '../../../container/index.js';
|
|
5
3
|
import type { AsyncDisposable } from '../../../disposable/index.js';
|
|
6
4
|
import { disposeAsync } from '../../../disposable/index.js';
|
|
7
5
|
import { Logger } from '../../../logger/index.js';
|
|
@@ -11,7 +9,7 @@ export type NodeHttpServerContext = {
|
|
|
11
9
|
nodeRequest: Http.IncomingMessage;
|
|
12
10
|
nodeResponse: Http.ServerResponse;
|
|
13
11
|
};
|
|
14
|
-
export declare class NodeHttpServer extends HttpServer<NodeHttpServerContext> implements AsyncDisposable
|
|
12
|
+
export declare class NodeHttpServer extends HttpServer<NodeHttpServerContext> implements AsyncDisposable {
|
|
15
13
|
private readonly httpServer;
|
|
16
14
|
private readonly sockets;
|
|
17
15
|
private readonly requestIterable;
|
|
@@ -19,7 +17,6 @@ export declare class NodeHttpServer extends HttpServer<NodeHttpServerContext> im
|
|
|
19
17
|
private untrackConnectedSockets?;
|
|
20
18
|
get connectedSocketsCount(): number;
|
|
21
19
|
constructor(logger: Logger);
|
|
22
|
-
[afterResolve](): void;
|
|
23
20
|
[disposeAsync](): Promise<void>;
|
|
24
21
|
listen(port: number): Promise<void>;
|
|
25
22
|
close(timeout: number): Promise<void>;
|
|
@@ -32,11 +32,10 @@ __export(node_http_server_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(node_http_server_exports);
|
|
34
34
|
var Http = __toESM(require("node:http"), 1);
|
|
35
|
-
var import_container = require("../../../container/index.js");
|
|
36
|
-
var import_core = require("../../../core.js");
|
|
37
35
|
var import_disposable = require("../../../disposable/index.js");
|
|
38
36
|
var import_http_headers = require("../../../http/http-headers.js");
|
|
39
37
|
var import_http_query = require("../../../http/http-query.js");
|
|
38
|
+
var import_injector = require("../../../injector/index.js");
|
|
40
39
|
var import_logger = require("../../../logger/index.js");
|
|
41
40
|
var import_cancellation_token = require("../../../utils/cancellation-token.js");
|
|
42
41
|
var import_encoding = require("../../../utils/encoding.js");
|
|
@@ -87,9 +86,6 @@ let NodeHttpServer = class NodeHttpServer2 extends import_http_server.HttpServer
|
|
|
87
86
|
this.requestIterable.feed({ request, response });
|
|
88
87
|
});
|
|
89
88
|
}
|
|
90
|
-
[import_container.afterResolve]() {
|
|
91
|
-
import_core.disposer.add(() => this[import_disposable.disposeAsync]);
|
|
92
|
-
}
|
|
93
89
|
async [import_disposable.disposeAsync]() {
|
|
94
90
|
await this.close(3e3);
|
|
95
91
|
this.requestIterable.end();
|
|
@@ -170,8 +166,8 @@ let NodeHttpServer = class NodeHttpServer2 extends import_http_server.HttpServer
|
|
|
170
166
|
}
|
|
171
167
|
};
|
|
172
168
|
NodeHttpServer = __decorate([
|
|
173
|
-
(0,
|
|
174
|
-
__param(0, (0,
|
|
169
|
+
(0, import_injector.Singleton)(),
|
|
170
|
+
__param(0, (0, import_injector.ResolveArg)("NodeHttpServer")),
|
|
175
171
|
__metadata("design:paramtypes", [import_logger.Logger])
|
|
176
172
|
], NodeHttpServer);
|
|
177
173
|
function getResponder(httpResponse) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { resolveArgumentType } from '../../injector/index.js';
|
|
2
|
+
import type { Resolvable } from '../../injector/interfaces.js';
|
|
3
3
|
import type { ImageOptions } from '../image-service.js';
|
|
4
4
|
import { ImageService } from '../image-service.js';
|
|
5
5
|
export type ImgproxyImageServiceConfig = {
|
|
@@ -8,12 +8,10 @@ export type ImgproxyImageServiceConfig = {
|
|
|
8
8
|
salt: string;
|
|
9
9
|
signatureSize: number;
|
|
10
10
|
};
|
|
11
|
-
export declare const IMGPROXY_IMAGE_SERVICE_CONFIG: import("../../
|
|
12
|
-
export declare class ImgproxyImageService extends ImageService implements
|
|
13
|
-
private
|
|
14
|
-
|
|
15
|
-
private readonly saltBytes;
|
|
16
|
-
private readonly signatureSize;
|
|
11
|
+
export declare const IMGPROXY_IMAGE_SERVICE_CONFIG: import("../../injector/index.js").InjectionToken<ImgproxyImageServiceConfig, never>;
|
|
12
|
+
export declare class ImgproxyImageService extends ImageService implements Resolvable<ImgproxyImageServiceConfig> {
|
|
13
|
+
#private;
|
|
14
|
+
readonly endpoint: string;
|
|
17
15
|
readonly [resolveArgumentType]: ImgproxyImageServiceConfig;
|
|
18
16
|
constructor(endpoint: string, key: string, salt: string, signatureSize: number);
|
|
19
17
|
getUrl(resourceUri: string, options?: ImageOptions): Promise<string>;
|
|
@@ -23,7 +23,8 @@ __export(imgproxy_image_service_exports, {
|
|
|
23
23
|
configureImgproxyImageService: () => configureImgproxyImageService
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(imgproxy_image_service_exports);
|
|
26
|
-
var
|
|
26
|
+
var import_injector = require("../../injector/index.js");
|
|
27
|
+
var import_injector2 = require("../../injector/injector.js");
|
|
27
28
|
var import_base64 = require("../../utils/base64.js");
|
|
28
29
|
var import_binary = require("../../utils/binary.js");
|
|
29
30
|
var import_cryptography = require("../../utils/cryptography.js");
|
|
@@ -49,18 +50,18 @@ var __param = function(paramIndex, decorator) {
|
|
|
49
50
|
decorator(target, key, paramIndex);
|
|
50
51
|
};
|
|
51
52
|
};
|
|
52
|
-
const IMGPROXY_IMAGE_SERVICE_CONFIG = (0,
|
|
53
|
+
const IMGPROXY_IMAGE_SERVICE_CONFIG = (0, import_injector.injectionToken)("ImgproxyImageServiceConfig");
|
|
53
54
|
let ImgproxyImageService = class ImgproxyImageService2 extends import_image_service.ImageService {
|
|
55
|
+
#keyBytes;
|
|
56
|
+
#saltBytes;
|
|
57
|
+
#signatureSize;
|
|
54
58
|
endpoint;
|
|
55
|
-
keyBytes;
|
|
56
|
-
saltBytes;
|
|
57
|
-
signatureSize;
|
|
58
59
|
constructor(endpoint, key, salt, signatureSize) {
|
|
59
60
|
super();
|
|
60
61
|
this.endpoint = endpoint;
|
|
61
|
-
this
|
|
62
|
-
this
|
|
63
|
-
this
|
|
62
|
+
this.#signatureSize = signatureSize;
|
|
63
|
+
this.#keyBytes = (0, import_encoding.decodeHex)(key);
|
|
64
|
+
this.#saltBytes = (0, import_encoding.decodeHex)(salt);
|
|
64
65
|
}
|
|
65
66
|
async getUrl(resourceUri, options = {}) {
|
|
66
67
|
const encodedResourceUri = (0, import_base64.encodeBase64Url)((0, import_encoding.encodeUtf8)(resourceUri));
|
|
@@ -83,18 +84,18 @@ let ImgproxyImageService = class ImgproxyImageService2 extends import_image_serv
|
|
|
83
84
|
}
|
|
84
85
|
const processingOptionsString = processingOptions.join("/");
|
|
85
86
|
const path = `/${[processingOptionsString, encodedResourceUri].join("/")}`;
|
|
86
|
-
const signature = await signString(this
|
|
87
|
+
const signature = await signString(this.#keyBytes, this.#saltBytes, path, this.#signatureSize);
|
|
87
88
|
return `${this.endpoint}/${signature}${path}`;
|
|
88
89
|
}
|
|
89
90
|
};
|
|
90
91
|
ImgproxyImageService = __decorate([
|
|
91
|
-
(0,
|
|
92
|
+
(0, import_injector.Singleton)({
|
|
92
93
|
defaultArgumentProvider: (context) => context.resolve(IMGPROXY_IMAGE_SERVICE_CONFIG)
|
|
93
94
|
}),
|
|
94
|
-
__param(0, (0,
|
|
95
|
-
__param(1, (0,
|
|
96
|
-
__param(2, (0,
|
|
97
|
-
__param(3, (0,
|
|
95
|
+
__param(0, (0, import_injector.InjectArg)("endpoint")),
|
|
96
|
+
__param(1, (0, import_injector.InjectArg)("key")),
|
|
97
|
+
__param(2, (0, import_injector.InjectArg)("salt")),
|
|
98
|
+
__param(3, (0, import_injector.InjectArg)("signatureSize")),
|
|
98
99
|
__metadata("design:paramtypes", [String, String, String, Number])
|
|
99
100
|
], ImgproxyImageService);
|
|
100
101
|
async function signString(keyBytes, saltBytes, target, size = 32) {
|
|
@@ -130,8 +131,8 @@ function convertOrigin(origin) {
|
|
|
130
131
|
}
|
|
131
132
|
}
|
|
132
133
|
function configureImgproxyImageService(defaultConfig, register = true) {
|
|
133
|
-
|
|
134
|
+
import_injector2.Injector.register(IMGPROXY_IMAGE_SERVICE_CONFIG, { useValue: defaultConfig });
|
|
134
135
|
if (register) {
|
|
135
|
-
|
|
136
|
+
import_injector2.Injector.registerSingleton(import_image_service.ImageService, { useToken: ImgproxyImageService });
|
|
136
137
|
}
|
|
137
138
|
}
|
package/injector/decorators.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { Decorator } from '../reflection/index.js';
|
|
2
|
-
import type { Constructor, OneOrMany, Simplify, TypedOmit } from '../types.js';
|
|
2
|
+
import type { Constructor, OneOrMany, Record, Simplify, TypedOmit } from '../types.js';
|
|
3
3
|
import type { Provider } from './provider.js';
|
|
4
4
|
import type { InjectionToken } from './token.js';
|
|
5
5
|
import type { ArgumentProvider, ForwardRefInjectionToken, Mapper, RegistrationOptions } from './types.js';
|
|
6
|
-
type InjectDecorator = Decorator<'accessor' | 'constructorParameter'>;
|
|
7
|
-
export type InjectableOptions<T, A> = RegistrationOptions<T, A> & {
|
|
6
|
+
export type InjectDecorator = Decorator<'accessor' | 'constructorParameter'>;
|
|
7
|
+
export type InjectableOptions<T, A, C extends Record = Record> = RegistrationOptions<T, A, C> & {
|
|
8
8
|
/** aliases (tokens) for the class. Useful for example for circular dependencies when you can't use the class itself as a token */
|
|
9
9
|
alias?: OneOrMany<InjectionToken>;
|
|
10
10
|
/** custom provider. Useful for example if initialization is required */
|
|
11
|
-
provider?: Provider<T, A>;
|
|
11
|
+
provider?: Provider<T, A, C>;
|
|
12
12
|
};
|
|
13
13
|
export type InjectableOptionsWithoutLifecycle<T, A> = Simplify<TypedOmit<InjectableOptions<T, A>, 'lifecycle'>>;
|
|
14
14
|
/**
|
|
@@ -21,7 +21,7 @@ export declare function ReplaceClass<T>(constructor: Constructor<T>): ClassDecor
|
|
|
21
21
|
* Globally registers the class for injection
|
|
22
22
|
* @param options registration options
|
|
23
23
|
*/
|
|
24
|
-
export declare function Injectable<T = any, A = any>(options?: InjectableOptions<T, A>): ClassDecorator;
|
|
24
|
+
export declare function Injectable<T = any, A = any, C extends Record = Record>(options?: InjectableOptions<T, A, C>): ClassDecorator;
|
|
25
25
|
/**
|
|
26
26
|
* registers the class in the global container with singleton lifecycle. Decorated class is not modified in any way
|
|
27
27
|
* @param options registration options
|
|
@@ -39,6 +39,13 @@ export declare function Scoped<T = any, A = any>(lifecycle: 'resolution' | 'inje
|
|
|
39
39
|
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
40
40
|
*/
|
|
41
41
|
export declare function Inject<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
|
|
42
|
+
/**
|
|
43
|
+
* sets the token used to resolve the parameter. Resolves all providers
|
|
44
|
+
* @param token token used for resolving
|
|
45
|
+
* @param argument resolve argument
|
|
46
|
+
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
47
|
+
*/
|
|
48
|
+
export declare function InjectAll<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
|
|
42
49
|
/**
|
|
43
50
|
* sets the argument used for resolving the parameter
|
|
44
51
|
* @param argument
|
|
@@ -72,4 +79,3 @@ export declare function Optional(): InjectDecorator;
|
|
|
72
79
|
* @param argument resolve argument
|
|
73
80
|
*/
|
|
74
81
|
export declare function ForwardRef<T extends object, A>(token: ForwardRefInjectionToken<T>, argument?: A): InjectDecorator;
|
|
75
|
-
export {};
|
package/injector/decorators.js
CHANGED
|
@@ -21,6 +21,7 @@ __export(decorators_exports, {
|
|
|
21
21
|
ForwardArg: () => ForwardArg,
|
|
22
22
|
ForwardRef: () => ForwardRef,
|
|
23
23
|
Inject: () => Inject,
|
|
24
|
+
InjectAll: () => InjectAll,
|
|
24
25
|
InjectArg: () => InjectArg,
|
|
25
26
|
Injectable: () => Injectable,
|
|
26
27
|
Optional: () => Optional,
|
|
@@ -75,6 +76,19 @@ function Inject(token, argument, mapperOrKey) {
|
|
|
75
76
|
}
|
|
76
77
|
return createInjectDecorator(injectMetadata);
|
|
77
78
|
}
|
|
79
|
+
function InjectAll(token, argument, mapperOrKey) {
|
|
80
|
+
const injectMetadata = { resolveAll: true };
|
|
81
|
+
if ((0, import_type_guards.isDefined)(token)) {
|
|
82
|
+
injectMetadata.injectToken = token;
|
|
83
|
+
}
|
|
84
|
+
if ((0, import_type_guards.isDefined)(argument)) {
|
|
85
|
+
injectMetadata.resolveArgumentProvider = () => argument;
|
|
86
|
+
}
|
|
87
|
+
if ((0, import_type_guards.isDefined)(mapperOrKey)) {
|
|
88
|
+
injectMetadata.mapper = (0, import_type_guards.isFunction)(mapperOrKey) ? mapperOrKey : (value) => value[mapperOrKey];
|
|
89
|
+
}
|
|
90
|
+
return createInjectDecorator(injectMetadata);
|
|
91
|
+
}
|
|
78
92
|
function ResolveArg(argument) {
|
|
79
93
|
return ResolveArgProvider(() => argument);
|
|
80
94
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './decorators.js';
|
|
2
|
+
export * from './inject.js';
|
|
3
|
+
export * from './injector.js';
|
|
4
|
+
export * from './interfaces.js';
|
|
5
|
+
export * from './provider.js';
|
|
6
|
+
export * from './resolve-chain.js';
|
|
7
|
+
export * from './resolve.error.js';
|
|
8
|
+
export * from './symbols.js';
|
|
9
|
+
export * from './token.js';
|
|
10
|
+
export * from './type-info.js';
|
|
11
|
+
export * from './types.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var injector_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(injector_exports);
|
|
18
|
+
__reExport(injector_exports, require("./decorators.js"), module.exports);
|
|
19
|
+
__reExport(injector_exports, require("./inject.js"), module.exports);
|
|
20
|
+
__reExport(injector_exports, require("./injector.js"), module.exports);
|
|
21
|
+
__reExport(injector_exports, require("./interfaces.js"), module.exports);
|
|
22
|
+
__reExport(injector_exports, require("./provider.js"), module.exports);
|
|
23
|
+
__reExport(injector_exports, require("./resolve-chain.js"), module.exports);
|
|
24
|
+
__reExport(injector_exports, require("./resolve.error.js"), module.exports);
|
|
25
|
+
__reExport(injector_exports, require("./symbols.js"), module.exports);
|
|
26
|
+
__reExport(injector_exports, require("./token.js"), module.exports);
|
|
27
|
+
__reExport(injector_exports, require("./type-info.js"), module.exports);
|
|
28
|
+
__reExport(injector_exports, require("./types.js"), module.exports);
|