@inversifyjs/core
Version:
InversifyJs core package
19 lines • 976 B
JavaScript
import { updateOwnReflectMetadata } from '@inversifyjs/reflect-metadata-utils';
import { classMetadataReflectKey } from '../../reflectMetadata/data/classMetadataReflectKey.js';
import { setIsInjectableFlag } from '../actions/setIsInjectableFlag.js';
import { updateClassMetadataWithTypescriptParameterTypes } from '../actions/updateClassMetadataWithTypescriptParameterTypes.js';
import { getDefaultClassMetadata } from '../calculations/getDefaultClassMetadata.js';
export function injectable(scope) {
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
return (target) => {
setIsInjectableFlag(target);
updateClassMetadataWithTypescriptParameterTypes(target);
if (scope !== undefined) {
updateOwnReflectMetadata(target, classMetadataReflectKey, getDefaultClassMetadata, (metadata) => ({
...metadata,
scope,
}));
}
};
}
//# sourceMappingURL=injectable.js.map