diff --git a/packages/container/libraries/core/src/metadata/decorators/inject.ts b/packages/container/libraries/core/src/metadata/decorators/inject.ts index 3b210bf8..a7737cd9 100644 --- a/packages/container/libraries/core/src/metadata/decorators/inject.ts +++ b/packages/container/libraries/core/src/metadata/decorators/inject.ts @@ -10,19 +10,18 @@ import { injectBase } from './injectBase'; export function inject( serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier, ): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + classElementMetadata: MaybeClassElementMetadata | undefined, + ) => ClassElementMetadata = buildManagedMetadataFromMaybeClassElementMetadata( + ClassElementMetadataKind.singleInjection, + serviceIdentifier, + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - classElementMetadata: MaybeClassElementMetadata | undefined, - ) => ClassElementMetadata = - buildManagedMetadataFromMaybeClassElementMetadata( - ClassElementMetadataKind.singleInjection, - serviceIdentifier, - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/multiInject.ts b/packages/container/libraries/core/src/metadata/decorators/multiInject.ts index 5b81f14b..2a2bd088 100644 --- a/packages/container/libraries/core/src/metadata/decorators/multiInject.ts +++ b/packages/container/libraries/core/src/metadata/decorators/multiInject.ts @@ -10,19 +10,18 @@ import { injectBase } from './injectBase'; export function multiInject( serviceIdentifier: ServiceIdentifier | LazyServiceIdentifier, ): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + classElementMetadata: MaybeClassElementMetadata | undefined, + ) => ClassElementMetadata = buildManagedMetadataFromMaybeClassElementMetadata( + ClassElementMetadataKind.multipleInjection, + serviceIdentifier, + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - classElementMetadata: MaybeClassElementMetadata | undefined, - ) => ClassElementMetadata = - buildManagedMetadataFromMaybeClassElementMetadata( - ClassElementMetadataKind.multipleInjection, - serviceIdentifier, - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/named.ts b/packages/container/libraries/core/src/metadata/decorators/named.ts index 9d5cb38e..cba8edee 100644 --- a/packages/container/libraries/core/src/metadata/decorators/named.ts +++ b/packages/container/libraries/core/src/metadata/decorators/named.ts @@ -10,18 +10,18 @@ import { injectBase } from './injectBase'; export function named( name: MetadataName, ): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + metadata: MaybeClassElementMetadata | undefined, + ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = + buildMaybeClassElementMetadataFromMaybeClassElementMetadata( + updateMetadataName(name), + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - metadata: MaybeClassElementMetadata | undefined, - ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = - buildMaybeClassElementMetadataFromMaybeClassElementMetadata( - updateMetadataName(name), - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/optional.ts b/packages/container/libraries/core/src/metadata/decorators/optional.ts index 3758b897..a2b0ddd8 100644 --- a/packages/container/libraries/core/src/metadata/decorators/optional.ts +++ b/packages/container/libraries/core/src/metadata/decorators/optional.ts @@ -7,18 +7,18 @@ import { MaybeManagedClassElementMetadata } from '../models/MaybeManagedClassEle import { injectBase } from './injectBase'; export function optional(): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + metadata: MaybeClassElementMetadata | undefined, + ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = + buildMaybeClassElementMetadataFromMaybeClassElementMetadata( + updateMetadataOptional, + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - metadata: MaybeClassElementMetadata | undefined, - ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = - buildMaybeClassElementMetadataFromMaybeClassElementMetadata( - updateMetadataOptional, - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/tagged.ts b/packages/container/libraries/core/src/metadata/decorators/tagged.ts index 69b04a4d..65d9b3d3 100644 --- a/packages/container/libraries/core/src/metadata/decorators/tagged.ts +++ b/packages/container/libraries/core/src/metadata/decorators/tagged.ts @@ -11,18 +11,18 @@ export function tagged( key: MetadataTag, value: unknown, ): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + metadata: MaybeClassElementMetadata | undefined, + ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = + buildMaybeClassElementMetadataFromMaybeClassElementMetadata( + updateMetadataTag(key, value), + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - metadata: MaybeClassElementMetadata | undefined, - ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = - buildMaybeClassElementMetadataFromMaybeClassElementMetadata( - updateMetadataTag(key, value), - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/targetName.ts b/packages/container/libraries/core/src/metadata/decorators/targetName.ts index 35692462..5ae1882c 100644 --- a/packages/container/libraries/core/src/metadata/decorators/targetName.ts +++ b/packages/container/libraries/core/src/metadata/decorators/targetName.ts @@ -10,18 +10,18 @@ import { injectBase } from './injectBase'; export function targetName( targetName: MetadataTargetName, ): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + metadata: MaybeClassElementMetadata | undefined, + ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = + buildMaybeClassElementMetadataFromMaybeClassElementMetadata( + updateMetadataTargetName(targetName), + ); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - metadata: MaybeClassElementMetadata | undefined, - ) => ManagedClassElementMetadata | MaybeManagedClassElementMetadata = - buildMaybeClassElementMetadataFromMaybeClassElementMetadata( - updateMetadataTargetName(targetName), - ); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/decorators/unmanaged.ts b/packages/container/libraries/core/src/metadata/decorators/unmanaged.ts index cca4c0da..e0b4f4c1 100644 --- a/packages/container/libraries/core/src/metadata/decorators/unmanaged.ts +++ b/packages/container/libraries/core/src/metadata/decorators/unmanaged.ts @@ -5,16 +5,16 @@ import { MaybeClassElementMetadata } from '../models/MaybeClassElementMetadata'; import { injectBase } from './injectBase'; export function unmanaged(): ParameterDecorator & PropertyDecorator { + const updateMetadata: ( + classElementMetadata: MaybeClassElementMetadata | undefined, + ) => ClassElementMetadata = + buildUnmanagedMetadataFromMaybeClassElementMetadata(); + return ( target: object, propertyKey: string | symbol | undefined, parameterIndex?: number, ): void => { - const updateMetadata: ( - classElementMetadata: MaybeClassElementMetadata | undefined, - ) => ClassElementMetadata = - buildUnmanagedMetadataFromMaybeClassElementMetadata(); - try { if (parameterIndex === undefined) { injectBase(updateMetadata)(target, propertyKey as string | symbol); diff --git a/packages/container/libraries/core/src/metadata/models/ClassMetadataLifecycle.ts b/packages/container/libraries/core/src/metadata/models/ClassMetadataLifecycle.ts index f1a09374..3ed10d44 100644 --- a/packages/container/libraries/core/src/metadata/models/ClassMetadataLifecycle.ts +++ b/packages/container/libraries/core/src/metadata/models/ClassMetadataLifecycle.ts @@ -1,4 +1,4 @@ export interface ClassMetadataLifecycle { - postConstructMethodName: string | undefined; - preDestroyMethodName: string | undefined; + postConstructMethodName: string | symbol | undefined; + preDestroyMethodName: string | symbol | undefined; }