metatasks
Version:
FIFO queue for Promise-based tasks. Optionally persistent to ensure tasks survive reboots. Supports concurrency-limiting, metadata and state-tracking for statistics.
39 lines (29 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.enableQueuedCalls = enableQueuedCalls;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _harmonyReflect = require('harmony-reflect');
var _harmonyReflect2 = _interopRequireDefault(_harmonyReflect);
var _decoratorQueueJs = require('./decorator-queue.js');
var queueProxy = new Proxy(function () {}, {
apply: function apply(emptyFunction, thisArg, argumentsList) {
return new Proxy(thisArg, {
get: function get(target, name) {
if (!(name in target) || typeof target[name] !== 'function') {
return undefined;
}
if (argumentsList.length > 1) throw new Error('Queue definition should be one parameter only');
return _decoratorQueueJs.makeItObeyQueue.call(target, target[name], argumentsList[0], target);
//console.log("using queue: " + argumentsList.join(", "));
//return target[name].bind(target);
}
});
}
});
function enableQueuedCalls(targetClass) {
targetClass.useQueue = queueProxy;
targetClass.prototype.useQueue = queueProxy;
}
//# sourceMappingURL=proxy.js.map