@cxra/routine-assistance
Version:
RA (Routine Assistance).
31 lines • 3.27 kB
JavaScript
/* eslint-disable @typescript-eslint/naming-convention */
/* eslint-disable @typescript-eslint/require-await */
/**
* Декоратор, который оборачивает функцию setter'а в if (value),
* то есть setter будет срабатывать только если значение не undefined и не null
*
* @example
* @Input('id')
* @ShouldByDefined()
* private set _accountId(value: number) {
* this.id$.next(value);
* }
* Тоже самое:
* @Input('id')
* private set _accountId(value: number) {
* if(value) {
* this.id$.next(value);
* }
* }
*/
export const ShouldByDefined = () => (_target, _propertyKey, descriptor) => {
const setter = descriptor.set;
descriptor.set = async function (...args) {
if (args[0]) {
return setter?.apply(this, args);
}
return null;
};
return descriptor;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuLWRlZmluZWQuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcm91dGluZS1hc3Npc3RhbmNlL3NyYy9saWIvZGVjb3JhdG9ycy9jYW4tZGVmaW5lZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELHFEQUFxRDtBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFnQixFQUFFLFlBQW9CLEVBQUUsVUFBOEIsRUFBc0IsRUFBRTtJQUVuSSxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBRTlCLFVBQVUsQ0FBQyxHQUFHLEdBQUcsS0FBSyxXQUFVLEdBQUcsSUFBZTtRQUNqRCxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLE9BQU8sTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUMsQ0FBQztJQUNGLE9BQU8sVUFBVSxDQUFDO0FBRW5CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVxdWlyZS1hd2FpdCAqL1xyXG5cclxuLyoqXHJcbiAqINCU0LXQutC+0YDQsNGC0L7RgCwg0LrQvtGC0L7RgNGL0Lkg0L7QsdC+0YDQsNGH0LjQstCw0LXRgiDRhNGD0L3QutGG0LjRjiBzZXR0ZXIn0LAg0LIgaWYgKHZhbHVlKSxcclxuICog0YLQviDQtdGB0YLRjCBzZXR0ZXIg0LHRg9C00LXRgiDRgdGA0LDQsdCw0YLRi9Cy0LDRgtGMINGC0L7Qu9GM0LrQviDQtdGB0LvQuCDQt9C90LDRh9C10L3QuNC1INC90LUgdW5kZWZpbmVkINC4INC90LUgbnVsbFxyXG4gKiBcclxuICogQGV4YW1wbGVcclxuICogXHRASW5wdXQoJ2lkJylcclxuICogXHRAU2hvdWxkQnlEZWZpbmVkKClcclxuICogXHRwcml2YXRlIHNldCBfYWNjb3VudElkKHZhbHVlOiBudW1iZXIpIHtcclxuICogXHRcdHRoaXMuaWQkLm5leHQodmFsdWUpO1xyXG4gKiBcdH1cclxuICogXHTQotC+0LbQtSDRgdCw0LzQvtC1OlxyXG4gKiBcdEBJbnB1dCgnaWQnKVxyXG4gKiBcdHByaXZhdGUgc2V0IF9hY2NvdW50SWQodmFsdWU6IG51bWJlcikge1xyXG4gKiBcdFx0aWYodmFsdWUpIHtcclxuICogXHRcdFx0dGhpcy5pZCQubmV4dCh2YWx1ZSk7XHJcbiAqIFx0XHR9XHJcbiAqIFx0fVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFNob3VsZEJ5RGVmaW5lZCA9ICgpID0+IChfdGFyZ2V0OiB1bmtub3duLCBfcHJvcGVydHlLZXk6IHN0cmluZywgZGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogUHJvcGVydHlEZXNjcmlwdG9yID0+IHtcclxuXHJcblx0Y29uc3Qgc2V0dGVyID0gZGVzY3JpcHRvci5zZXQ7XHJcblxyXG5cdGRlc2NyaXB0b3Iuc2V0ID0gYXN5bmMgZnVuY3Rpb24oLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx1bmtub3duPiB7XHJcblx0XHRpZiAoYXJnc1swXSkge1xyXG5cdFx0XHRyZXR1cm4gc2V0dGVyPy5hcHBseSh0aGlzLCBhcmdzKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH07XHJcblx0cmV0dXJuIGRlc2NyaXB0b3I7XHJcblxyXG59OyJdfQ==