UNPKG

@naturalcycles/js-lib

Version:

Standard library for universal (browser + Node.js) javascript

23 lines (22 loc) 945 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports._Timeout = _Timeout; const assert_1 = require("../error/assert"); const pTimeout_1 = require("../promise/pTimeout"); const decorator_util_1 = require("./decorator.util"); // eslint-disable-next-line @typescript-eslint/naming-convention function _Timeout(opt) { return (target, key, descriptor) => { (0, assert_1._assert)(typeof descriptor.value === 'function', '@_Timeout can be applied only to methods'); if (!opt.timeout) return descriptor; const originalFn = descriptor.value; const keyStr = String(key); descriptor.value = async function (...args) { const ctx = this; opt.name ||= (0, decorator_util_1._getMethodSignature)(ctx, keyStr); return await (0, pTimeout_1.pTimeout)(() => originalFn.apply(this, args), opt); }; return descriptor; }; }