UNPKG

javascript-decorators

Version:
49 lines (42 loc) 1.25 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports._defer = exports._debounce = exports._timeout = undefined; var _helpers = require('./helpers'); /** * Timeout decorator * * @method _timeout * * @param { number } wait = 300 * */ var __timeout = function timeout() { var wait = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 300; var debounceKeys = {}; return function timeoutTarget(key, target, descriptor) { var func = descriptor.value; (0, _helpers.descriptorIsFunc)(key, func); var dkey = Symbol('dkey'); descriptor.value = function descriptorValue() { var _this = this; for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } debounceKeys[dkey] = setTimeout(function () { delete debounceKeys[dkey]; func.apply(_this, args); }, wait); }; return descriptor; }; }; /** * Timing related decorators * * @author Avraam Mavridis <avr.mav@gmail.com> * */ var _timeout = exports._timeout = __timeout; var _debounce = exports._debounce = __timeout; var _defer = exports._defer = __timeout.bind(undefined, 0);