Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { createUniqueHash } from '../../helpers/create-unique-hash';
import { ServiceMetadata } from '../../container/types/ServiceMetadata';
import { Container } from '../../container/Container';
export function Effect<T, K extends keyof T>(options?: {init?: boolean}): Function {
return function (target: Function) {
const uniqueHashForClass = createUniqueHash(`${target}`);
Object.defineProperty(target, 'originalName', { value: target.name || target.constructor.name, writable: false });
Object.defineProperty(target, 'name', { value: uniqueHashForClass, writable: true });
target['metadata'] = {
moduleName: target['originalName'],
moduleHash: uniqueHashForClass,
type: 'effect',
options: options || null,
raw: `
---- @Effect '${target.name}' metadata----
@Effect()
${target['originalName']}
`
};
const service: ServiceMetadata<T, K> = {
type: target
};
Container.set(service);
};
} |