All files / lib/decorators Setter.ts

100% Statements 8/8
100% Branches 3/3
100% Functions 2/2
100% Lines 8/8

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 201x   1x 3x         3x   3x 2x     3x   3x      
import { Keys } from "../Keys";
 
export function Setter() {
    return (
        target: object,
        propertyKey: string,
        descriptor: PropertyDescriptor
    ) => {
        const metadata: any = Reflect.getMetadata(Keys.SETTER_METHOD_PROPERTY_DECORATOR_KEY, target.constructor) || {};
 
        if (metadata[Keys.SETTER_METHOD_PROPERTY_DECORATOR_KEY] === undefined) {
            metadata[Keys.SETTER_METHOD_PROPERTY_DECORATOR_KEY] = [];
        }
 
        metadata[Keys.SETTER_METHOD_PROPERTY_DECORATOR_KEY].push(propertyKey); // push setter methods.
 
        Reflect.defineMetadata(Keys.SETTER_METHOD_PROPERTY_DECORATOR_KEY, metadata, target.constructor);
    };
}