@scoir/async-throttler
Advanced tools
Comparing version 3.0.0 to 3.0.1
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
exports.__esModule = true; | ||
exports["default"] = void 0; | ||
var Throttler = /*#__PURE__*/function () { | ||
function Throttler(cb) { | ||
(0, _classCallCheck2.default)(this, Throttler); | ||
this.cb = cb; | ||
@@ -25,53 +15,47 @@ this.cb({ | ||
} | ||
(0, _createClass2.default)(Throttler, [{ | ||
key: "execute", | ||
value: function execute(promise) { | ||
var _this = this; | ||
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 700; | ||
this.cb({ | ||
isProcessing: true, | ||
isProcessed: false, | ||
isComplete: false, | ||
var _proto = Throttler.prototype; | ||
_proto.execute = function execute(promise, delay) { | ||
var _this = this; | ||
if (delay === void 0) { | ||
delay = 700; | ||
} | ||
this.cb({ | ||
isProcessing: true, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
// NOTE: this is exposed only for testing and should not be used outside of that context | ||
this._executedPromise = Promise.all([promise, new Promise(function (resolve) { | ||
return setTimeout(resolve, delay); | ||
})]).then(function () { | ||
return _this.cb({ | ||
isProcessing: false, | ||
isProcessed: true, | ||
isComplete: true, | ||
isError: false | ||
}); // NOTE: this is exposed only for testing and should not be used outside of that context | ||
this._executedPromise = Promise.all([promise, new Promise(function (resolve) { | ||
return setTimeout(resolve, delay); | ||
})]).then(function () { | ||
return _this.cb({ | ||
isProcessing: false, | ||
isProcessed: true, | ||
isComplete: true, | ||
isError: false | ||
}); | ||
}).catch(function () { | ||
return _this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: true, | ||
isError: true | ||
}); | ||
}); | ||
} | ||
}, { | ||
key: "reset", | ||
value: function reset() { | ||
this.cb({ | ||
})["catch"](function () { | ||
return _this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
isComplete: true, | ||
isError: true | ||
}); | ||
} | ||
}]); | ||
}); | ||
}; | ||
_proto.reset = function reset() { | ||
this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
}; | ||
return Throttler; | ||
}(); | ||
var _default = { | ||
var _default = exports["default"] = { | ||
create: function create(cb) { | ||
return new Throttler(cb); | ||
} | ||
}; | ||
exports.default = _default; | ||
}; |
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
var _index = _interopRequireDefault(require("./index")); | ||
it('should create a throttler', function () { | ||
var cb = jest.fn(); | ||
_index.default.create(cb); | ||
_index["default"].create(cb); | ||
expect(cb).toHaveBeenCalledWith({ | ||
@@ -28,79 +22,68 @@ isProcessing: false, | ||
cb = jest.fn(); | ||
inst = _index.default.create(cb); | ||
inst = _index["default"].create(cb); | ||
cb.mockReset(); | ||
jest.useFakeTimers(); | ||
}); | ||
it('should allow promise execution', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() { | ||
it('should allow promise execution', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { | ||
var promise; | ||
return _regenerator.default.wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
promise = Promise.resolve(); | ||
inst.execute(promise); | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: true, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
case 3: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
return _regenerator["default"].wrap(function _callee$(_context) { | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
promise = Promise.resolve(); | ||
inst.execute(promise); | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: true, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
case 3: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
}))); | ||
it('should wait for both promises to finish', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() { | ||
return _regenerator.default.wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
inst.execute(Promise.resolve('data')); | ||
cb.mockReset(); | ||
expect(cb).not.toHaveBeenCalled(); | ||
jest.advanceTimersByTime(700); | ||
_context2.next = 6; | ||
return inst._executedPromise; | ||
case 6: | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: false, | ||
isProcessed: true, | ||
isComplete: true, | ||
isError: false | ||
}); | ||
case 7: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
it('should wait for both promises to finish', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { | ||
return _regenerator["default"].wrap(function _callee2$(_context2) { | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
inst.execute(Promise.resolve('data')); | ||
cb.mockReset(); | ||
expect(cb).not.toHaveBeenCalled(); | ||
jest.advanceTimersByTime(700); | ||
_context2.next = 6; | ||
return inst._executedPromise; | ||
case 6: | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: false, | ||
isProcessed: true, | ||
isComplete: true, | ||
isError: false | ||
}); | ||
case 7: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
}, _callee2); | ||
}))); | ||
it('should notify on failed promises', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() { | ||
return _regenerator.default.wrap(function _callee3$(_context3) { | ||
while (1) { | ||
switch (_context3.prev = _context3.next) { | ||
case 0: | ||
inst.execute(Promise.reject('data')); | ||
cb.mockReset(); | ||
expect(cb).not.toHaveBeenCalled(); | ||
jest.advanceTimersByTime(700); | ||
_context3.next = 6; | ||
return inst._executedPromise; | ||
case 6: | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: true, | ||
isError: true | ||
}); | ||
case 7: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
it('should notify on failed promises', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() { | ||
return _regenerator["default"].wrap(function _callee3$(_context3) { | ||
while (1) switch (_context3.prev = _context3.next) { | ||
case 0: | ||
inst.execute(Promise.reject('data')); | ||
cb.mockReset(); | ||
expect(cb).not.toHaveBeenCalled(); | ||
jest.advanceTimersByTime(700); | ||
_context3.next = 6; | ||
return inst._executedPromise; | ||
case 6: | ||
expect(cb).toHaveBeenCalledWith({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: true, | ||
isError: true | ||
}); | ||
case 7: | ||
case "end": | ||
return _context3.stop(); | ||
} | ||
@@ -113,5 +96,3 @@ }, _callee3); | ||
var cb = jest.fn(); | ||
var inst = _index.default.create(cb); | ||
var inst = _index["default"].create(cb); | ||
cb.mockReset(); | ||
@@ -118,0 +99,0 @@ inst.reset(); |
{ | ||
"name": "@scoir/async-throttler", | ||
"version": "3.0.0", | ||
"version": "3.0.1", | ||
"description": "", | ||
@@ -9,8 +9,9 @@ "author": "@scoir", | ||
"scripts": { | ||
"watch": "../../bundle.sh -w", | ||
"prepublish": "../../bundle.sh" | ||
"build": "../../bundle.sh", | ||
"watch": "../../bundle.sh -w" | ||
}, | ||
"publishConfig": { | ||
"access": "public" | ||
} | ||
}, | ||
"gitHead": "b9c0faecaf06c1f08200b84e3f21a433801a2c24" | ||
} |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
9871
283
1