Skip to content

Commit

Permalink
refactor(core): update decorators
Browse files Browse the repository at this point in the history
update updateMetadata callback scope
  • Loading branch information
notaphplover committed Nov 18, 2024
1 parent 4e6b574 commit c6a98c3
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
export interface ClassMetadataLifecycle {
postConstructMethodName: string | undefined;
preDestroyMethodName: string | undefined;
postConstructMethodName: string | symbol | undefined;
preDestroyMethodName: string | symbol | undefined;
}

0 comments on commit c6a98c3

Please sign in to comment.