async-singleton
Advanced tools
Comparing version 0.0.4 to 0.0.5
@@ -1,2 +0,2 @@ | ||
'use strict'; | ||
"use strict"; | ||
@@ -6,8 +6,16 @@ Object.defineProperty(exports, "__esModule", { | ||
}); | ||
exports.default = singletonAsync; | ||
exports["default"] = singletonAsync; | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } | ||
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } | ||
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } | ||
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } | ||
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } | ||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } | ||
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } | ||
var last = function last(arr) { | ||
@@ -18,4 +26,2 @@ return arr[arr.length - 1]; | ||
function singletonAsync(func) { | ||
var _this = this; | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
@@ -28,8 +34,12 @@ trailing = _ref.trailing; | ||
return function () { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return new Promise(function () { | ||
var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(resolve) { | ||
return new Promise( | ||
/*#__PURE__*/ | ||
function () { | ||
var _ref2 = _asyncToGenerator( | ||
/*#__PURE__*/ | ||
regeneratorRuntime.mark(function _callee(resolve) { | ||
var result, _last, _args; | ||
@@ -46,3 +56,6 @@ | ||
return _context.abrupt('return', queue.push({ resolve: resolve, args: args })); | ||
return _context.abrupt("return", queue.push({ | ||
resolve: resolve, | ||
args: args | ||
})); | ||
@@ -52,7 +65,6 @@ case 2: | ||
_context.next = 5; | ||
return func.apply(undefined, args); | ||
return func.apply(void 0, args); | ||
case 5: | ||
result = _context.sent; | ||
resolve(result); | ||
@@ -72,3 +84,3 @@ | ||
_context.next = 12; | ||
return func.apply(undefined, _toConsumableArray(_args)); | ||
return func.apply(void 0, _toConsumableArray(_args)); | ||
@@ -89,10 +101,10 @@ case 12: | ||
case 16: | ||
case 'end': | ||
case "end": | ||
return _context.stop(); | ||
} | ||
} | ||
}, _callee, _this); | ||
}, _callee); | ||
})); | ||
return function (_x2) { | ||
return function (_x) { | ||
return _ref2.apply(this, arguments); | ||
@@ -102,3 +114,2 @@ }; | ||
}; | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJzaW5nbGV0b25Bc3luYyIsImxhc3QiLCJhcnIiLCJsZW5ndGgiLCJmdW5jIiwidHJhaWxpbmciLCJFcnJvciIsInJ1bm5pbmciLCJxdWV1ZSIsImFyZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsInB1c2giLCJyZXN1bHQiLCJmb3JFYWNoIl0sIm1hcHBpbmdzIjoiOzs7OztrQkFFd0JBLGM7Ozs7OztBQUZ4QixJQUFNQyxPQUFPLFNBQVBBLElBQU87QUFBQSxTQUFPQyxJQUFJQSxJQUFJQyxNQUFKLEdBQWEsQ0FBakIsQ0FBUDtBQUFBLENBQWI7O0FBRWUsU0FBU0gsY0FBVCxDQUF5QkksSUFBekIsRUFBZ0Q7QUFBQTs7QUFBQSxpRkFBSixFQUFJO0FBQUEsTUFBaEJDLFFBQWdCLFFBQWhCQSxRQUFnQjs7QUFDN0QsTUFBSSxPQUFPRCxJQUFQLEtBQWdCLFVBQXBCLEVBQWdDLE1BQU0sSUFBSUUsS0FBSixDQUFVLDJCQUFWLENBQU47QUFDaEMsTUFBSUMsVUFBVSxLQUFkO0FBQ0EsTUFBSUMsUUFBUSxFQUFaO0FBQ0EsU0FBTztBQUFBLHNDQUFJQyxJQUFKO0FBQUlBLFVBQUo7QUFBQTs7QUFBQSxXQUFhLElBQUlDLE9BQUo7QUFBQSwwRUFBWSxpQkFBT0MsT0FBUDtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBQzFCSixPQUQwQjtBQUFBO0FBQUE7QUFBQTs7QUFBQSxpREFDVkMsTUFBTUksSUFBTixDQUFXLEVBQUNELGdCQUFELEVBQVVGLFVBQVYsRUFBWCxDQURVOztBQUFBO0FBRTlCRiwwQkFBVSxJQUFWO0FBRjhCO0FBQUEsdUJBR1hILHNCQUFRSyxJQUFSLENBSFc7O0FBQUE7QUFHMUJJLHNCQUgwQjs7QUFJOUJGLHdCQUFRRSxNQUFSOztBQUo4QixzQkFLMUJMLE1BQU1MLE1BQU4sR0FBZSxDQUxXO0FBQUE7QUFBQTtBQUFBOztBQUFBLHFCQU14QkUsUUFOd0I7QUFBQTtBQUFBO0FBQUE7O0FBQUEsd0JBT1hKLEtBQUtPLEtBQUwsQ0FQVyxFQU9uQkMsS0FQbUIsU0FPbkJBLElBUG1CO0FBQUE7QUFBQSx1QkFRWEwseUNBQVFLLEtBQVIsRUFSVzs7QUFBQTtBQVExQkksc0JBUjBCOztBQUFBO0FBVTVCTCxzQkFBTU0sT0FBTixDQUFjO0FBQUEsc0JBQUVILE9BQUYsU0FBRUEsT0FBRjtBQUFBLHlCQUFlQSxRQUFRRSxNQUFSLENBQWY7QUFBQSxpQkFBZDtBQUNBTCx3QkFBUSxFQUFSOztBQVg0QjtBQWE5QkQsMEJBQVUsS0FBVjs7QUFiOEI7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsT0FBWjs7QUFBQTtBQUFBO0FBQUE7QUFBQSxRQUFiO0FBQUEsR0FBUDtBQWVEIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbGFzdCA9IGFyciA9PiBhcnJbYXJyLmxlbmd0aCAtIDFdXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNpbmdsZXRvbkFzeW5jIChmdW5jLCB7dHJhaWxpbmd9ID0ge30pIHtcbiAgaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nKSB0aHJvdyBuZXcgRXJyb3IoJ2FyZ3VtZW50IGlzIG5vdCBmdW5jdGlvbi4nKVxuICBsZXQgcnVubmluZyA9IGZhbHNlXG4gIGxldCBxdWV1ZSA9IFtdXG4gIHJldHVybiAoLi4uYXJncykgPT4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICBpZiAocnVubmluZykgcmV0dXJuIHF1ZXVlLnB1c2goe3Jlc29sdmUsIGFyZ3N9KVxuICAgIHJ1bm5pbmcgPSB0cnVlXG4gICAgbGV0IHJlc3VsdCA9IGF3YWl0IGZ1bmMoLi4uYXJncylcbiAgICByZXNvbHZlKHJlc3VsdClcbiAgICBpZiAocXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRyYWlsaW5nKSB7XG4gICAgICAgIGNvbnN0IHthcmdzfSA9IGxhc3QocXVldWUpXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGZ1bmMoLi4uYXJncylcbiAgICAgIH1cbiAgICAgIHF1ZXVlLmZvckVhY2goKHtyZXNvbHZlfSkgPT4gcmVzb2x2ZShyZXN1bHQpKVxuICAgICAgcXVldWUgPSBbXVxuICAgIH1cbiAgICBydW5uaW5nID0gZmFsc2VcbiAgfSlcbn1cbiJdfQ== | ||
} |
{ | ||
"name": "async-singleton", | ||
"version": "0.0.4", | ||
"version": "0.0.5", | ||
"description": "make async/promise function execute only one at a time.", | ||
"main": "index.js", | ||
"scripts": { | ||
"start": "run-s build test", | ||
"build": "run-s build:*", | ||
"build:babel": "babel src/ --out-dir lib/ --source-maps inline", | ||
"build:clean": "rm -rf lib/", | ||
"build:babel": "babel src/ --out-dir lib/", | ||
"pretest": "npm run build", | ||
"test": "run-s test:*", | ||
"test:mocha": "mocha test -r babel-polyfill -r babel-register", | ||
"test:standard": "standard", | ||
"clean": "rm -rf lib/" | ||
"test:mocha": "NODE_ENV=test mocha 'test/*.js' -r @babel/polyfill -r @babel/register --exit", | ||
"prepublishOnly": "npm test" | ||
}, | ||
@@ -25,12 +26,11 @@ "keywords": [ | ||
"devDependencies": { | ||
"babel-cli": "^6.26.0", | ||
"babel-polyfill": "^6.26.0", | ||
"babel-preset-es2015": "^6.24.1", | ||
"babel-preset-es2017": "^6.24.1", | ||
"babel-preset-stage-0": "^6.24.1", | ||
"babel-register": "^6.26.0", | ||
"chai": "^4.1.2", | ||
"@babel/cli": "^7.4.3", | ||
"@babel/core": "^7.4.3", | ||
"@babel/polyfill": "^7.4.3", | ||
"@babel/preset-env": "^7.4.3", | ||
"@babel/register": "^7.4.0", | ||
"chai": "^4.2.0", | ||
"mocha": "^4.0.1", | ||
"npm-run-all": "^4.1.2", | ||
"standard": "^10.0.3" | ||
"npm-run-all": "^4.1.5", | ||
"standard": "^12.0.1" | ||
}, | ||
@@ -37,0 +37,0 @@ "dependencies": {}, |
9
85
6229
4