UNPKG

command-queue-module

Version:

Create command queue proxies for modules

29 lines (22 loc) 646 B
(function() { function createCommandQueueModule(methodNames, load) { const callQueue = []; const proxyModule = {}; function defineMethod(name) { proxyModule[name] = function() { callQueue.push([name, this, [].slice.call(arguments)]); }; } methodNames.forEach(defineMethod); function invoke(actualModule) { function invokeCommand([name, _this, args]) { actualModule[name].apply(_this, args); } callQueue.push = invokeCommand; callQueue.forEach(invokeCommand); } load(invoke); return proxyModule; } module.exports = createCommandQueueModule; })();