UNPKG

@cxra/routine-assistance

Version:

RA (Routine Assistance).

27 lines 3.56 kB
/* eslint-disable @typescript-eslint/naming-convention */ /* eslint-disable @typescript-eslint/require-await */ /** * Декоратор, который оборачивает функцию setter'а в обработчик, который входной аргумент поступивший * (например из шаблона) возможно в виде строки, пытается привести к @see bool * * @example * @Input('can') * @InputAsBool() * private set _can(value: boolean) { * this.can$.next(value); * } */ export const InputAsBool = () => (_target, _propertyKey, descriptor) => { const setter = descriptor.set; descriptor.set = async function (...args) { const _argument = args[0]; args[0] = _argument === '' || _argument === 'true' ? true : _argument === 'false' ? false : _argument; return setter?.apply(this, args); }; return descriptor; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuYXMuYm9vbC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yb3V0aW5lLWFzc2lzdGFuY2Uvc3JjL2xpYi9kZWNvcmF0b3JzL2lucHV0LmFzLmJvb2wuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxxREFBcUQ7QUFDckQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsWUFBb0IsRUFBRSxVQUE4QixFQUFzQixFQUFFO0lBRS9ILE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFFOUIsVUFBVSxDQUFDLEdBQUcsR0FBRyxLQUFLLFdBQVUsR0FBRyxJQUFlO1FBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUUsU0FBUyxLQUFLLEVBQUUsSUFBSSxTQUFTLEtBQUssTUFBTTtZQUNoRCxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxTQUFTLEtBQUssT0FBTztnQkFDdEIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU8sTUFBTSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQyxDQUFDO0lBQ0YsT0FBTyxVQUFVLENBQUM7QUFFbkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9yZXF1aXJlLWF3YWl0ICovXHJcbi8qKlxyXG4gKiDQlNC10LrQvtGA0LDRgtC+0YAsINC60L7RgtC+0YDRi9C5INC+0LHQvtGA0LDRh9C40LLQsNC10YIg0YTRg9C90LrRhtC40Y4gc2V0dGVyJ9CwINCyINC+0LHRgNCw0LHQvtGC0YfQuNC6LCDQutC+0YLQvtGA0YvQuSDQstGF0L7QtNC90L7QuSDQsNGA0LPRg9C80LXQvdGCINC/0L7RgdGC0YPQv9C40LLRiNC40LlcclxuICogKNC90LDQv9GA0LjQvNC10YAg0LjQtyDRiNCw0LHQu9C+0L3QsCkg0LLQvtC30LzQvtC20L3QviDQsiDQstC40LTQtSDRgdGC0YDQvtC60LgsINC/0YvRgtCw0LXRgtGB0Y8g0L/RgNC40LLQtdGB0YLQuCDQuiBAc2VlIGJvb2xcclxuICogXHJcbiAqIEBleGFtcGxlXHJcbiAqXHRASW5wdXQoJ2NhbicpXHJcbiAqXHRASW5wdXRBc0Jvb2woKVxyXG4gKlx0cHJpdmF0ZSBzZXQgX2Nhbih2YWx1ZTogYm9vbGVhbikge1xyXG4gKlx0XHR0aGlzLmNhbiQubmV4dCh2YWx1ZSk7XHJcbiAqXHR9XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgSW5wdXRBc0Jvb2wgPSAoKSA9PiAoX3RhcmdldDogdW5rbm93biwgX3Byb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcik6IFByb3BlcnR5RGVzY3JpcHRvciA9PiB7XHJcblxyXG5cdGNvbnN0IHNldHRlciA9IGRlc2NyaXB0b3Iuc2V0O1xyXG5cclxuXHRkZXNjcmlwdG9yLnNldCA9IGFzeW5jIGZ1bmN0aW9uKC4uLmFyZ3M6IHVua25vd25bXSk6IFByb21pc2U8dW5rbm93bj4ge1xyXG5cdFx0Y29uc3QgX2FyZ3VtZW50ID0gYXJnc1swXTtcclxuXHRcdGFyZ3NbMF0gPV9hcmd1bWVudCA9PT0gJycgfHwgX2FyZ3VtZW50ID09PSAndHJ1ZSdcclxuXHRcdFx0PyB0cnVlXHJcblx0XHRcdDogX2FyZ3VtZW50ID09PSAnZmFsc2UnXHJcblx0XHRcdFx0PyBmYWxzZVxyXG5cdFx0XHRcdDogX2FyZ3VtZW50O1xyXG5cdFx0cmV0dXJuIHNldHRlcj8uYXBwbHkodGhpcywgYXJncyk7XHJcblx0fTtcclxuXHRyZXR1cm4gZGVzY3JpcHRvcjtcclxuXHJcbn07Il19