@tstdl/base 0.71.69 → 0.71.70-beta1
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/container.d.ts +1 -0
- package/container/container.js +65 -54
- package/container/container.js.map +1 -1
- package/container/decorators.d.ts +11 -8
- package/container/decorators.js +48 -69
- package/container/decorators.js.map +1 -1
- package/container/resolve-chain.js +4 -3
- package/container/resolve-chain.js.map +1 -1
- package/container/type-info.d.ts +1 -21
- package/container/type-info.js +0 -42
- package/container/type-info.js.map +1 -1
- package/container/utils.d.ts +1 -1
- package/container/utils.js +17 -28
- package/container/utils.js.map +1 -1
- package/css/theme/theme.service.js +3 -2
- package/css/theme/theme.service.js.map +1 -1
- package/database/mongo/mongo-entity-repository.js.map +1 -1
- package/examples/pdf/basic.js +2 -1
- package/examples/pdf/basic.js.map +1 -1
- package/examples/reflection/basic.js +4 -1
- package/examples/reflection/basic.js.map +1 -1
- package/http/cookie-parser.js +2 -2
- package/http/cookie-parser.js.map +1 -1
- package/package.json +1 -1
- package/reflection/decorator-data.d.ts +1 -46
- package/reflection/decorator-data.js.map +1 -1
- package/reflection/decorators.d.ts +13 -11
- package/reflection/decorators.js +27 -18
- package/reflection/decorators.js.map +1 -1
- package/reflection/registry.d.ts +30 -14
- package/reflection/registry.js +23 -15
- package/reflection/registry.js.map +1 -1
- package/reflection/types.d.ts +88 -0
- package/reflection/types.js +3 -0
- package/reflection/types.js.map +1 -0
- package/reflection/utils.d.ts +21 -21
- package/reflection/utils.js +41 -50
- package/reflection/utils.js.map +1 -1
- package/schema/schemas/object.js +4 -3
- package/schema/schemas/object.js.map +1 -1
- package/search-index/elastic/search-index.js +1 -1
- package/search-index/elastic/search-index.js.map +1 -1
- package/serializer/serializer.js +5 -4
- package/serializer/serializer.js.map +1 -1
- package/templates/module.js +1 -0
- package/templates/module.js.map +1 -1
- package/templates/template.service.d.ts +2 -2
- package/templates/template.service.js +3 -3
- package/templates/template.service.js.map +1 -1
- package/types.d.ts +2 -2
- package/utils/helpers.js +11 -7
- package/utils/helpers.js.map +1 -1
- package/utils/object/lazy-property.js +1 -1
- package/utils/object/lazy-property.js.map +1 -1
- package/utils/object/merge.js +1 -1
- package/utils/object/merge.js.map +1 -1
- package/utils/object/object.d.ts +5 -1
- package/utils/object/object.js +22 -8
- package/utils/object/object.js.map +1 -1
package/container/container.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { Injectable, InjectableArgument } from './interfaces';
|
|
|
4
4
|
import type { Provider } from './provider';
|
|
5
5
|
import type { InjectionToken } from './token';
|
|
6
6
|
import type { ArgumentProvider, Mapper } from './types';
|
|
7
|
+
export declare const injectMetadataSymbol: unique symbol;
|
|
7
8
|
/**
|
|
8
9
|
* transient: a new instance will be created with each resolve
|
|
9
10
|
* singleton: each resolve will return the same instance
|
package/container/container.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.container = exports.Container = void 0;
|
|
3
|
+
exports.container = exports.Container = exports.injectMetadataSymbol = void 0;
|
|
4
4
|
const circular_buffer_1 = require("../data-structures/circular-buffer");
|
|
5
5
|
const multi_key_map_1 = require("../data-structures/multi-key-map");
|
|
6
|
+
const reflection_1 = require("../reflection");
|
|
6
7
|
const async_iterable_helpers_1 = require("../utils/async-iterable-helpers");
|
|
7
8
|
const forward_ref_1 = require("../utils/object/forward-ref");
|
|
9
|
+
const object_1 = require("../utils/object/object");
|
|
8
10
|
const type_guards_1 = require("../utils/type-guards");
|
|
9
11
|
const rxjs_1 = require("rxjs");
|
|
10
12
|
const interfaces_1 = require("./interfaces");
|
|
@@ -12,8 +14,8 @@ const provider_1 = require("./provider");
|
|
|
12
14
|
const resolve_chain_1 = require("./resolve-chain");
|
|
13
15
|
const resolve_error_1 = require("./resolve.error");
|
|
14
16
|
const token_1 = require("./token");
|
|
15
|
-
const type_info_1 = require("./type-info");
|
|
16
17
|
const utils_1 = require("./utils");
|
|
18
|
+
exports.injectMetadataSymbol = Symbol('Inject metadata');
|
|
17
19
|
class Container {
|
|
18
20
|
constructor() {
|
|
19
21
|
this.registrationMap = new Map();
|
|
@@ -31,8 +33,9 @@ class Container {
|
|
|
31
33
|
* @param options registration options
|
|
32
34
|
*/
|
|
33
35
|
register(token, provider, options = {}) {
|
|
34
|
-
if ((0, provider_1.isClassProvider)(provider)) {
|
|
35
|
-
|
|
36
|
+
if ((0, provider_1.isClassProvider)(provider) && !(0, utils_1.isStubClass)(provider.useClass)) {
|
|
37
|
+
const injectable = reflection_1.reflectionRegistry.hasType(provider.useClass) && reflection_1.reflectionRegistry.getMetadata(provider.useClass).data.has(exports.injectMetadataSymbol);
|
|
38
|
+
if (!injectable) {
|
|
36
39
|
throw new Error(`${provider.useClass.name} is not injectable`);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
@@ -160,17 +163,20 @@ class Container {
|
|
|
160
163
|
context.resolving.set([token, argumentIdentity], true);
|
|
161
164
|
let instance;
|
|
162
165
|
if ((0, provider_1.isClassProvider)(registration.provider)) {
|
|
163
|
-
const
|
|
164
|
-
if ((
|
|
165
|
-
throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable
|
|
166
|
+
const typeMetadata = reflection_1.reflectionRegistry.getMetadata(registration.provider.useClass);
|
|
167
|
+
if (!typeMetadata.data.has(exports.injectMetadataSymbol)) {
|
|
168
|
+
throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable.`, chain);
|
|
166
169
|
}
|
|
167
|
-
if (
|
|
168
|
-
throw new resolve_error_1.ResolveError(`
|
|
170
|
+
if ((0, utils_1.isStubClass)(typeMetadata.constructor)) {
|
|
171
|
+
throw new resolve_error_1.ResolveError(`No provider for ${(0, token_1.getTokenName)(token)} registered.`, chain);
|
|
169
172
|
}
|
|
170
|
-
const parameters =
|
|
171
|
-
instance = new
|
|
172
|
-
for (const [property, metadata] of
|
|
173
|
-
|
|
173
|
+
const parameters = (typeMetadata.parameters ?? []).map((metadata) => this.resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain));
|
|
174
|
+
instance = new typeMetadata.constructor(...parameters);
|
|
175
|
+
for (const [property, metadata] of typeMetadata.properties) {
|
|
176
|
+
if (!metadata.data.has(exports.injectMetadataSymbol)) {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
instance[property] = this.resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain);
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
if ((0, provider_1.isValueProvider)(registration.provider)) {
|
|
@@ -190,7 +196,7 @@ class Container {
|
|
|
190
196
|
instance = result;
|
|
191
197
|
}
|
|
192
198
|
catch (error) {
|
|
193
|
-
throw new resolve_error_1.ResolveError('
|
|
199
|
+
throw new resolve_error_1.ResolveError('Error in factory.', chain, error);
|
|
194
200
|
}
|
|
195
201
|
}
|
|
196
202
|
if (!(0, provider_1.isTokenProvider)(registration.provider)) {
|
|
@@ -260,18 +266,21 @@ class Container {
|
|
|
260
266
|
context.resolving.set([token, argumentIdentity], true);
|
|
261
267
|
let instance;
|
|
262
268
|
if ((0, provider_1.isClassProvider)(registration.provider)) {
|
|
263
|
-
const
|
|
264
|
-
if ((
|
|
265
|
-
throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable
|
|
269
|
+
const typeMetadata = reflection_1.reflectionRegistry.getMetadata(registration.provider.useClass);
|
|
270
|
+
if (!typeMetadata.data.has(exports.injectMetadataSymbol)) {
|
|
271
|
+
throw new resolve_error_1.ResolveError(`${registration.provider.useClass.name} is not injectable.`, chain);
|
|
266
272
|
}
|
|
267
|
-
if (
|
|
268
|
-
throw new resolve_error_1.ResolveError(`
|
|
273
|
+
if ((0, utils_1.isStubClass)(typeMetadata.constructor)) {
|
|
274
|
+
throw new resolve_error_1.ResolveError(`No provider for ${(0, token_1.getTokenName)(token)} registered.`, chain);
|
|
269
275
|
}
|
|
270
|
-
const boxedParameters = await (0, async_iterable_helpers_1.toArrayAsync)((0, async_iterable_helpers_1.mapAsync)(
|
|
276
|
+
const boxedParameters = await (0, async_iterable_helpers_1.toArrayAsync)((0, async_iterable_helpers_1.mapAsync)(typeMetadata.parameters ?? [], async (metadata) => this.resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain)));
|
|
271
277
|
const parameters = boxedParameters.map((box) => box.resolved);
|
|
272
|
-
instance = new
|
|
273
|
-
for (const [property, metadata] of
|
|
274
|
-
|
|
278
|
+
instance = new typeMetadata.constructor(...parameters);
|
|
279
|
+
for (const [property, metadata] of typeMetadata.properties) {
|
|
280
|
+
if (!metadata.data.has(exports.injectMetadataSymbol)) {
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
instance[property] = (await this.resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain)).resolved;
|
|
275
284
|
}
|
|
276
285
|
}
|
|
277
286
|
if ((0, provider_1.isValueProvider)(registration.provider)) {
|
|
@@ -287,7 +296,7 @@ class Container {
|
|
|
287
296
|
instance = await registration.provider.useFactory(resolveArgument, this.getResolveContext(context, chain));
|
|
288
297
|
}
|
|
289
298
|
catch (error) {
|
|
290
|
-
throw new resolve_error_1.ResolveError('
|
|
299
|
+
throw new resolve_error_1.ResolveError('Error in factory.', chain, error);
|
|
291
300
|
}
|
|
292
301
|
}
|
|
293
302
|
if (!(0, provider_1.isTokenProvider)(registration.provider)) {
|
|
@@ -317,64 +326,66 @@ class Container {
|
|
|
317
326
|
}
|
|
318
327
|
return instance;
|
|
319
328
|
}
|
|
320
|
-
resolveInjection(token, context,
|
|
321
|
-
const getChain = metadata.
|
|
322
|
-
? (injectToken) => chain.addParameter(
|
|
323
|
-
: (injectToken) => chain.addProperty(
|
|
324
|
-
const
|
|
325
|
-
|
|
326
|
-
|
|
329
|
+
resolveInjection(token, context, typeMetadata, metadata, resolveArgument, chain) {
|
|
330
|
+
const getChain = (metadata.metadataType == 'constructor-parameter')
|
|
331
|
+
? (injectToken) => chain.addParameter(typeMetadata.constructor, metadata.index, injectToken).addToken(injectToken)
|
|
332
|
+
: (injectToken) => chain.addProperty(typeMetadata.constructor, metadata.key, injectToken).addToken(injectToken);
|
|
333
|
+
const injectMetadata = metadata.data.get(exports.injectMetadataSymbol) ?? {};
|
|
334
|
+
const injectToken = (injectMetadata.injectToken ?? metadata.type);
|
|
335
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
|
|
336
|
+
const mapped = injectMetadata.injectArgumentMapper(resolveArgument);
|
|
327
337
|
if ((0, type_guards_1.isPromise)(mapped)) {
|
|
328
338
|
throw new resolve_error_1.ResolveError(`cannot evaluate async argument mapper for token ${(0, token_1.getTokenName)(token)} in synchronous resolve, use resolveAsync instead`, getChain(injectToken));
|
|
329
339
|
}
|
|
330
340
|
return mapped;
|
|
331
341
|
}
|
|
332
|
-
const parameterResolveArgument =
|
|
342
|
+
const parameterResolveArgument = injectMetadata.forwardArgumentMapper?.(resolveArgument) ?? injectMetadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken)));
|
|
333
343
|
if ((0, type_guards_1.isPromise)(parameterResolveArgument)) {
|
|
334
344
|
throw new resolve_error_1.ResolveError(`cannot evaluate async argument provider for token ${(0, token_1.getTokenName)(token)} in synchronous resolve, use resolveAsync instead`, getChain(injectToken));
|
|
335
345
|
}
|
|
336
|
-
if ((0, type_guards_1.isDefined)(
|
|
346
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.forwardRefToken)) {
|
|
337
347
|
const forwardRef = forward_ref_1.ForwardRef.create();
|
|
338
|
-
const forwardRefToken =
|
|
348
|
+
const forwardRefToken = injectMetadata.forwardRefToken;
|
|
339
349
|
context.forwardRefQueue.add(() => {
|
|
340
350
|
const forwardToken = (0, type_guards_1.isFunction)(forwardRefToken) ? forwardRefToken() : forwardRefToken;
|
|
341
|
-
if ((0, type_guards_1.isDefined)(
|
|
351
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.mapper)) {
|
|
342
352
|
throw new resolve_error_1.ResolveError('cannot use inject mapper with forwardRef', getChain(forwardToken));
|
|
343
353
|
}
|
|
344
|
-
const resolved = this._resolve(forwardToken,
|
|
354
|
+
const resolved = this._resolve(forwardToken, injectMetadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
|
|
345
355
|
forward_ref_1.ForwardRef.setRef(forwardRef, resolved);
|
|
346
356
|
});
|
|
347
357
|
context.forwardRefs.add(forwardRef);
|
|
348
358
|
return forwardRef;
|
|
349
359
|
}
|
|
350
|
-
const resolved = this._resolve(injectToken,
|
|
351
|
-
return (0, type_guards_1.isDefined)(
|
|
360
|
+
const resolved = this._resolve(injectToken, injectMetadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
|
|
361
|
+
return (0, type_guards_1.isDefined)(injectMetadata.mapper) ? injectMetadata.mapper(resolved) : resolved;
|
|
352
362
|
}
|
|
353
|
-
async resolveInjectionAsync(context,
|
|
354
|
-
const
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
}
|
|
358
|
-
const
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
+
async resolveInjectionAsync(context, typeMetadata, metadata, resolveArgument, chain) {
|
|
364
|
+
const getChain = (metadata.metadataType == 'constructor-parameter')
|
|
365
|
+
? (injectToken) => chain.addParameter(typeMetadata.constructor, metadata.index, injectToken).addToken(injectToken)
|
|
366
|
+
: (injectToken) => chain.addProperty(typeMetadata.constructor, metadata.key, injectToken).addToken(injectToken);
|
|
367
|
+
const injectMetadata = metadata.data.get(exports.injectMetadataSymbol) ?? {};
|
|
368
|
+
const injectToken = (injectMetadata.injectToken ?? metadata.type);
|
|
369
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.injectArgumentMapper) && (!this.hasRegistration(injectToken) || (0, type_guards_1.isDefined)(resolveArgument) || (0, type_guards_1.isUndefined)(injectToken))) {
|
|
370
|
+
return { resolved: injectMetadata.injectArgumentMapper(resolveArgument) };
|
|
371
|
+
}
|
|
372
|
+
const parameterResolveArgument = await (injectMetadata.forwardArgumentMapper?.(resolveArgument) ?? injectMetadata.resolveArgumentProvider?.(this.getResolveContext(context, getChain(injectToken))));
|
|
373
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.forwardRefToken)) {
|
|
363
374
|
const forwardRef = forward_ref_1.ForwardRef.create();
|
|
364
|
-
const forwardRefToken =
|
|
375
|
+
const forwardRefToken = injectMetadata.forwardRefToken;
|
|
365
376
|
context.forwardRefQueue.add(async () => {
|
|
366
377
|
const forwardToken = (0, type_guards_1.isFunction)(forwardRefToken) ? forwardRefToken() : forwardRefToken;
|
|
367
|
-
if ((0, type_guards_1.isDefined)(
|
|
378
|
+
if ((0, type_guards_1.isDefined)(injectMetadata.mapper)) {
|
|
368
379
|
throw new resolve_error_1.ResolveError('cannot use inject mapper with forwardRef', getChain(forwardToken));
|
|
369
380
|
}
|
|
370
|
-
const resolved = await this._resolveAsync(forwardToken,
|
|
381
|
+
const resolved = await this._resolveAsync(forwardToken, injectMetadata.optional, parameterResolveArgument, context, getChain(forwardToken), false);
|
|
371
382
|
forward_ref_1.ForwardRef.setRef(forwardRef, resolved);
|
|
372
383
|
});
|
|
373
384
|
context.forwardRefs.add(forwardRef);
|
|
374
385
|
return { resolved: forwardRef };
|
|
375
386
|
}
|
|
376
|
-
const resolved = await this._resolveAsync(injectToken,
|
|
377
|
-
return { resolved: (0, type_guards_1.isDefined)(
|
|
387
|
+
const resolved = await this._resolveAsync(injectToken, injectMetadata.optional, parameterResolveArgument, context, getChain(injectToken), false);
|
|
388
|
+
return { resolved: (0, type_guards_1.isDefined)(injectMetadata.mapper) ? injectMetadata.mapper(resolved) : resolved };
|
|
378
389
|
}
|
|
379
390
|
getResolveContext(resolveContext, chain) {
|
|
380
391
|
const context = {
|
|
@@ -405,7 +416,7 @@ function derefForwardRefs(context) {
|
|
|
405
416
|
if (!(typeof resolution.instance == 'object')) {
|
|
406
417
|
continue;
|
|
407
418
|
}
|
|
408
|
-
for (const [key, value] of
|
|
419
|
+
for (const [key, value] of (0, object_1.objectEntries)(resolution.instance)) {
|
|
409
420
|
if (!context.forwardRefs.has(value)) {
|
|
410
421
|
continue;
|
|
411
422
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../source/container/container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../source/container/container.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import type { Decorator } from "../reflection/types";
|
|
1
2
|
import type { Constructor, OneOrMany, Simplify, TypedExtract, TypedOmit } from "../types";
|
|
2
3
|
import type { Lifecycle, RegistrationOptions } from './container';
|
|
3
4
|
import type { Provider } from './provider';
|
|
4
5
|
import type { InjectionToken } from './token';
|
|
5
6
|
import type { ArgumentProvider, ForwardRefInjectionToken, Mapper } from './types';
|
|
7
|
+
declare type InjectDecorator = Decorator<'property' | 'accessor' | 'constructorParameter'>;
|
|
6
8
|
export declare type InjectableOptions<T, A> = RegistrationOptions<T> & {
|
|
7
9
|
/** aliases (tokens) for the class. Useful for example for circular dependencies when you can't use the class itself as a token */
|
|
8
10
|
alias?: OneOrMany<InjectionToken>;
|
|
@@ -37,37 +39,38 @@ export declare function scoped<T = any, A = any>(lifecycle: Simplify<TypedExtrac
|
|
|
37
39
|
* @param argument resolve argument
|
|
38
40
|
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
39
41
|
*/
|
|
40
|
-
export declare function inject<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T):
|
|
42
|
+
export declare function inject<T, A>(token?: InjectionToken<T, A>, argument?: A, mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
|
|
41
43
|
/**
|
|
42
44
|
* sets the argument used for resolving the parameter
|
|
43
45
|
* @param argument
|
|
44
46
|
*/
|
|
45
|
-
export declare function resolveArg<T>(argument: T):
|
|
47
|
+
export declare function resolveArg<T>(argument: T): InjectDecorator;
|
|
46
48
|
/**
|
|
47
49
|
* sets the argument provider used for resolving the parameter
|
|
48
50
|
* @param argumentProvider
|
|
49
51
|
*/
|
|
50
|
-
export declare function resolveArgProvider<T>(argumentProvider: ArgumentProvider<T>):
|
|
52
|
+
export declare function resolveArgProvider<T>(argumentProvider: ArgumentProvider<T>): InjectDecorator;
|
|
51
53
|
/**
|
|
52
54
|
* injects the argument used for resolving the class instead of resolving the parameter
|
|
53
55
|
* @param argument
|
|
54
56
|
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
55
57
|
*/
|
|
56
|
-
export declare function injectArg<T>(mapperOrKey?: Mapper<T> | keyof T):
|
|
58
|
+
export declare function injectArg<T>(mapperOrKey?: Mapper<T> | keyof T): InjectDecorator;
|
|
57
59
|
/**
|
|
58
60
|
* sets the argument used for resolving the decorated parameter to the the argument provided for parent resolve
|
|
59
61
|
* @param mapper map the argument (for example to select a property instead of forwarding the whole object)
|
|
60
62
|
*/
|
|
61
|
-
export declare function forwardArg():
|
|
62
|
-
export declare function forwardArg<T, U>(mapper: Mapper<T, U>):
|
|
63
|
+
export declare function forwardArg(): InjectDecorator;
|
|
64
|
+
export declare function forwardArg<T, U>(mapper: Mapper<T, U>): InjectDecorator;
|
|
63
65
|
/**
|
|
64
66
|
* marks the argument as optional
|
|
65
67
|
* @param argument
|
|
66
68
|
*/
|
|
67
|
-
export declare function optional():
|
|
69
|
+
export declare function optional(): InjectDecorator;
|
|
68
70
|
/**
|
|
69
71
|
* resolve using ForwardRef to handle circular dependencies. Resolve logic derefs all ForwardRefs which are direct properties of resolved instances automatically
|
|
70
72
|
* @param token token to resolve
|
|
71
73
|
* @param argument resolve argument
|
|
72
74
|
*/
|
|
73
|
-
export declare function forwardRef<T, A>(token: ForwardRefInjectionToken<T>, argument?: A):
|
|
75
|
+
export declare function forwardRef<T, A>(token: ForwardRefInjectionToken<T>, argument?: A): InjectDecorator;
|
|
76
|
+
export {};
|
package/container/decorators.js
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.forwardRef = exports.optional = exports.forwardArg = exports.injectArg = exports.resolveArgProvider = exports.resolveArg = exports.inject = exports.scoped = exports.singleton = exports.injectable = exports.replaceClass = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
5
|
+
const reflection_1 = require("../reflection");
|
|
4
6
|
const array_1 = require("../utils/array");
|
|
5
|
-
const reflection_1 = require("../utils/reflection");
|
|
6
7
|
const type_guards_1 = require("../utils/type-guards");
|
|
7
8
|
const container_1 = require("./container");
|
|
8
|
-
const type_info_1 = require("./type-info");
|
|
9
9
|
/**
|
|
10
10
|
* Helper decorator to replace a class definition with an other
|
|
11
11
|
* can be used for example to type external classes with the {@link Injectable} interface
|
|
12
12
|
* @param constructor class to replace with
|
|
13
13
|
*/
|
|
14
14
|
function replaceClass(constructor) {
|
|
15
|
-
|
|
16
|
-
return constructor;
|
|
17
|
-
}
|
|
18
|
-
return replaceDecorator;
|
|
15
|
+
return (0, reflection_1.createClassDecorator)({ handler: () => constructor });
|
|
19
16
|
}
|
|
20
17
|
exports.replaceClass = replaceClass;
|
|
21
18
|
/**
|
|
@@ -23,23 +20,20 @@ exports.replaceClass = replaceClass;
|
|
|
23
20
|
* @param options registration options
|
|
24
21
|
*/
|
|
25
22
|
function injectable(options = {}) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
for (const alias of (0, array_1.toArray)(aliases)) {
|
|
38
|
-
container_1.container.register(alias, { useToken: constructor }, registrationOptions);
|
|
23
|
+
return (0, reflection_1.createClassDecorator)({
|
|
24
|
+
data: { [container_1.injectMetadataSymbol]: {} },
|
|
25
|
+
mergeData: true,
|
|
26
|
+
handler: (data) => {
|
|
27
|
+
const { alias: aliases, provider, ...registrationOptions } = options;
|
|
28
|
+
const targetProvider = provider ?? { useClass: data.constructor };
|
|
29
|
+
container_1.container.register(data.constructor, targetProvider, registrationOptions);
|
|
30
|
+
if ((0, type_guards_1.isDefined)(aliases)) {
|
|
31
|
+
for (const alias of (0, array_1.toArray)(aliases)) {
|
|
32
|
+
container_1.container.register(alias, { useToken: data.constructor }, registrationOptions);
|
|
33
|
+
}
|
|
39
34
|
}
|
|
40
35
|
}
|
|
41
|
-
}
|
|
42
|
-
return injectableDecorator;
|
|
36
|
+
});
|
|
43
37
|
}
|
|
44
38
|
exports.injectable = injectable;
|
|
45
39
|
/**
|
|
@@ -65,22 +59,17 @@ exports.scoped = scoped;
|
|
|
65
59
|
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
66
60
|
*/
|
|
67
61
|
function inject(token, argument, mapperOrKey) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
metadata.injectToken = token;
|
|
75
|
-
}
|
|
76
|
-
if ((0, type_guards_1.isDefined)(argument)) {
|
|
77
|
-
metadata.resolveArgumentProvider = () => argument;
|
|
78
|
-
}
|
|
79
|
-
if ((0, type_guards_1.isDefined)(mapperOrKey)) {
|
|
80
|
-
metadata.mapper = (0, type_guards_1.isFunction)(mapperOrKey) ? mapperOrKey : ((value) => value[mapperOrKey]);
|
|
81
|
-
}
|
|
62
|
+
const injectMetadata = {};
|
|
63
|
+
if ((0, type_guards_1.isDefined)(token)) {
|
|
64
|
+
injectMetadata.injectToken = token;
|
|
65
|
+
}
|
|
66
|
+
if ((0, type_guards_1.isDefined)(argument)) {
|
|
67
|
+
injectMetadata.resolveArgumentProvider = () => argument;
|
|
82
68
|
}
|
|
83
|
-
|
|
69
|
+
if ((0, type_guards_1.isDefined)(mapperOrKey)) {
|
|
70
|
+
injectMetadata.mapper = (0, type_guards_1.isFunction)(mapperOrKey) ? mapperOrKey : ((value) => value[mapperOrKey]);
|
|
71
|
+
}
|
|
72
|
+
return createInjectDecorator(injectMetadata);
|
|
84
73
|
}
|
|
85
74
|
exports.inject = inject;
|
|
86
75
|
/**
|
|
@@ -88,11 +77,7 @@ exports.inject = inject;
|
|
|
88
77
|
* @param argument
|
|
89
78
|
*/
|
|
90
79
|
function resolveArg(argument) {
|
|
91
|
-
|
|
92
|
-
const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
|
|
93
|
-
metadata.resolveArgumentProvider = () => argument;
|
|
94
|
-
}
|
|
95
|
-
return resolveArgDecorator;
|
|
80
|
+
return resolveArgProvider(() => argument);
|
|
96
81
|
}
|
|
97
82
|
exports.resolveArg = resolveArg;
|
|
98
83
|
/**
|
|
@@ -100,11 +85,7 @@ exports.resolveArg = resolveArg;
|
|
|
100
85
|
* @param argumentProvider
|
|
101
86
|
*/
|
|
102
87
|
function resolveArgProvider(argumentProvider) {
|
|
103
|
-
|
|
104
|
-
const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
|
|
105
|
-
metadata.resolveArgumentProvider = argumentProvider;
|
|
106
|
-
}
|
|
107
|
-
return resolveArgDecorator;
|
|
88
|
+
return createInjectDecorator({ resolveArgumentProvider: argumentProvider });
|
|
108
89
|
}
|
|
109
90
|
exports.resolveArgProvider = resolveArgProvider;
|
|
110
91
|
/**
|
|
@@ -113,23 +94,17 @@ exports.resolveArgProvider = resolveArgProvider;
|
|
|
113
94
|
* @param mapperOrKey map the resolved value. If {@link PropertyKey} is provided, that property of the resolved value will be injected
|
|
114
95
|
*/
|
|
115
96
|
function injectArg(mapperOrKey) {
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
metadata.injectArgumentMapper = (0, type_guards_1.isFunction)(mapperOrKey)
|
|
97
|
+
return createInjectDecorator({
|
|
98
|
+
injectArgumentMapper: (0, type_guards_1.isFunction)(mapperOrKey)
|
|
119
99
|
? mapperOrKey
|
|
120
100
|
: (0, type_guards_1.isDefined)(mapperOrKey)
|
|
121
101
|
? ((value) => value[mapperOrKey])
|
|
122
|
-
: (value) => value
|
|
123
|
-
}
|
|
124
|
-
return injectArgDecorator;
|
|
102
|
+
: ((value) => value)
|
|
103
|
+
});
|
|
125
104
|
}
|
|
126
105
|
exports.injectArg = injectArg;
|
|
127
106
|
function forwardArg(mapper = (value) => value) {
|
|
128
|
-
|
|
129
|
-
const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
|
|
130
|
-
metadata.forwardArgumentMapper = mapper;
|
|
131
|
-
}
|
|
132
|
-
return forwardArgDecorator;
|
|
107
|
+
return createInjectDecorator({ forwardArgumentMapper: mapper });
|
|
133
108
|
}
|
|
134
109
|
exports.forwardArg = forwardArg;
|
|
135
110
|
/**
|
|
@@ -137,11 +112,7 @@ exports.forwardArg = forwardArg;
|
|
|
137
112
|
* @param argument
|
|
138
113
|
*/
|
|
139
114
|
function optional() {
|
|
140
|
-
|
|
141
|
-
const metadata = (0, type_info_1.getInjectMetadata)(target, propertyKey, parameterIndex, true);
|
|
142
|
-
metadata.optional = true;
|
|
143
|
-
}
|
|
144
|
-
return optionalDecorator;
|
|
115
|
+
return createInjectDecorator({ optional: true });
|
|
145
116
|
}
|
|
146
117
|
exports.optional = optional;
|
|
147
118
|
/**
|
|
@@ -150,14 +121,22 @@ exports.optional = optional;
|
|
|
150
121
|
* @param argument resolve argument
|
|
151
122
|
*/
|
|
152
123
|
function forwardRef(token, argument) {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
124
|
+
const injectMetadata = {
|
|
125
|
+
forwardRefToken: token
|
|
126
|
+
};
|
|
127
|
+
if ((0, type_guards_1.isDefined)(argument)) {
|
|
128
|
+
injectMetadata.resolveArgumentProvider = () => argument;
|
|
159
129
|
}
|
|
160
|
-
return
|
|
130
|
+
return createInjectDecorator(injectMetadata);
|
|
161
131
|
}
|
|
162
132
|
exports.forwardRef = forwardRef;
|
|
133
|
+
function createInjectDecorator(metadata) {
|
|
134
|
+
return (0, reflection_1.createDecorator)({
|
|
135
|
+
property: true,
|
|
136
|
+
accessor: true,
|
|
137
|
+
constructorParameter: true,
|
|
138
|
+
data: { [container_1.injectMetadataSymbol]: metadata },
|
|
139
|
+
mergeData: true
|
|
140
|
+
});
|
|
141
|
+
}
|
|
163
142
|
//# sourceMappingURL=decorators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../source/container/decorators.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../source/container/decorators.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,8CAAqE;AAGrE,0CAAwC;AACxC,sDAA4D;AAE5D,2CAA8D;AAkB9D;;;;GAIG;AACH,SAAgB,YAAY,CAAI,WAA2B;IACzD,OAAO,IAAA,iCAAoB,EAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAmB,UAAmC,EAAE;IAChF,OAAO,IAAA,iCAAoB,EAAC;QAC1B,IAAI,EAAE,EAAE,CAAC,gCAAoB,CAAC,EAAE,EAAoB,EAAE;QACtD,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,CAAC;YAErE,MAAM,cAAc,GAAa,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5E,qBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,EAAE,mBAAmB,CAAC,CAAC;YAE1E,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,EAAE;gBACtB,KAAK,MAAM,KAAK,IAAI,IAAA,eAAO,EAAC,OAAO,CAAC,EAAE;oBACpC,qBAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,mBAAmB,CAAC,CAAC;iBAChF;aACF;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAjBD,gCAiBC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAmB,UAAmD,EAAE;IAC/F,OAAO,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;AAC5D,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAmB,SAA0D,EAAE,UAAmD,EAAE;IACxJ,OAAO,UAAU,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAC/C,CAAC;AAFD,wBAEC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAO,KAA4B,EAAE,QAAY,EAAE,WAAiC;IACxG,MAAM,cAAc,GAAmB,EAAE,CAAC;IAE1C,IAAI,IAAA,uBAAS,EAAC,KAAK,CAAC,EAAE;QACpB,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;KACpC;IAED,IAAI,IAAA,uBAAS,EAAC,QAAQ,CAAC,EAAE;QACvB,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;KACzD;IAED,IAAI,IAAA,uBAAS,EAAC,WAAW,CAAC,EAAE;QAC1B,cAAc,CAAC,MAAM,GAAG,IAAA,wBAAU,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAU,EAAE,EAAE,CAAE,KAA8B,CAAC,WAAW,CAAC,CAAC,CAAC;KAChI;IAED,OAAO,qBAAqB,CAAC,cAAc,CAAC,CAAC;AAC/C,CAAC;AAhBD,wBAgBC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAI,QAAW;IACvC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAI,gBAAqC;IACzE,OAAO,qBAAqB,CAAC,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC9E,CAAC;AAFD,gDAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAI,WAAiC;IAC5D,OAAO,qBAAqB,CAAC;QAC3B,oBAAoB,EAAE,IAAA,wBAAU,EAAC,WAAW,CAAC;YAC3C,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,IAAA,uBAAS,EAAC,WAAW,CAAC;gBACtB,CAAC,CAAC,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAE,KAA8B,CAAC,WAAW,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC,CAAC,KAAQ,EAAE,EAAE,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AARD,8BAQC;AAQD,SAAgB,UAAU,CAAC,SAAiB,CAAC,KAAK,EAAW,EAAE,CAAC,KAAK;IACnE,OAAO,qBAAqB,CAAC,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,CAAC;AAClE,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ;IACtB,OAAO,qBAAqB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAFD,4BAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAO,KAAkC,EAAE,QAAY;IAC/E,MAAM,cAAc,GAAmB;QACrC,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,IAAI,IAAA,uBAAS,EAAC,QAAQ,CAAC,EAAE;QACvB,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;KACzD;IAED,OAAO,qBAAqB,CAAC,cAAc,CAAC,CAAC;AAC/C,CAAC;AAVD,gCAUC;AAED,SAAS,qBAAqB,CAAC,QAAwB;IACrD,OAAO,IAAA,4BAAe,EAAC;QACrB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,oBAAoB,EAAE,IAAI;QAC1B,IAAI,EAAE,EAAE,CAAC,gCAAoB,CAAC,EAAE,QAAQ,EAAE;QAC1C,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ResolveChain = void 0;
|
|
4
|
+
const reflection_1 = require("../reflection");
|
|
5
|
+
const utils_1 = require("../utils");
|
|
4
6
|
const token_1 = require("./token");
|
|
5
|
-
const type_info_1 = require("./type-info");
|
|
6
7
|
class ResolveChain {
|
|
7
8
|
constructor(nodes) {
|
|
8
9
|
this.nodes = nodes ?? [];
|
|
@@ -31,9 +32,9 @@ class ResolveChain {
|
|
|
31
32
|
chainString += `\n -> ${tokenName}`;
|
|
32
33
|
break;
|
|
33
34
|
case 'parameter':
|
|
34
|
-
const
|
|
35
|
+
const metadata = reflection_1.reflectionRegistry.getMetadata(node.constructor);
|
|
35
36
|
const prefix = '_, '.repeat(node.index);
|
|
36
|
-
const suffix = ', _'.repeat(
|
|
37
|
+
const suffix = ', _'.repeat((0, utils_1.assertDefinedPass)(metadata.parameters, 'missing parameters metadata').length - node.index - 1);
|
|
37
38
|
chainString += `(${prefix}${tokenName}${suffix})`;
|
|
38
39
|
break;
|
|
39
40
|
case 'property':
|