Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
methodDescriptorOrParameterIndex,
bindingSelector,
metadata: injectionMetadata,
resolve,
},
// Do not deep clone the spec as only metadata is mutable and it's
// shallowly cloned
{cloneInputSpec: false, decoratorName: injectionMetadata.decorator},
);
paramDecorator(target, member!, methodDescriptorOrParameterIndex);
} else if (member) {
// Property or method
if (target instanceof Function) {
throw new Error(
'@inject is not supported for a static property: ' +
DecoratorFactory.getTargetName(target, member),
);
}
if (methodDescriptorOrParameterIndex) {
// Method
throw new Error(
'@inject cannot be used on a method: ' +
DecoratorFactory.getTargetName(
target,
member,
methodDescriptorOrParameterIndex,
),
);
}
const propDecorator: PropertyDecorator = PropertyDecoratorFactory.createDecorator<
Injection
>(
interceptorOrKeys,
{decoratorName: '@intercept'},
)(target, method, methodDescriptor!);
}
if (typeof target === 'function' && !method && !methodDescriptor) {
// Class
return InterceptClassDecoratorFactory.createDecorator(
INTERCEPT_CLASS_KEY,
interceptorOrKeys,
{decoratorName: '@intercept'},
)(target);
}
// Not on a class or method
throw new Error(
'@intercept cannot be used on a property: ' +
DecoratorFactory.getTargetName(target, method, methodDescriptor),
);
};
}
{cloneInputSpec: false, decoratorName: injectionMetadata.decorator},
);
paramDecorator(target, member!, methodDescriptorOrParameterIndex);
} else if (member) {
// Property or method
if (target instanceof Function) {
throw new Error(
'@inject is not supported for a static property: ' +
DecoratorFactory.getTargetName(target, member),
);
}
if (methodDescriptorOrParameterIndex) {
// Method
throw new Error(
'@inject cannot be used on a method: ' +
DecoratorFactory.getTargetName(
target,
member,
methodDescriptorOrParameterIndex,
),
);
}
const propDecorator: PropertyDecorator = PropertyDecoratorFactory.createDecorator<
Injection
>(
PROPERTIES_KEY,
{
target,
member,
methodDescriptorOrParameterIndex,
bindingSelector,
metadata: injectionMetadata,