ts-ioc-container
Version:
Typescript IoC container
19 lines (18 loc) • 838 B
JavaScript
export const setMetadata = (key, value) => (target) => {
Reflect.defineMetadata(key, value, target);
};
export function getMetadata(target, key) {
return Reflect.getOwnMetadata(key, target);
}
export const setParameterMetadata = (key, value) => (target, propertyKey, parameterIndex) => {
const metadata = Reflect.getOwnMetadata(key, target) ?? [];
metadata[parameterIndex] = value;
Reflect.defineMetadata(key, metadata, target);
};
export const getParameterMetadata = (key, target) => {
return Reflect.getOwnMetadata(key, target) ?? [];
};
export const setMethodMetadata = (key, value) => (target, propertyKey) => {
Reflect.defineMetadata(key, value, target.constructor, propertyKey);
};
export const getMethodMetadata = (key, target, propertyKey) => Reflect.getMetadata(key, target.constructor, propertyKey);