@scoir/async-throttler
Advanced tools
Comparing version 2.0.1 to 3.0.0-beta.b0e6db42
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _promise = require("babel-runtime/core-js/promise"); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _promise2 = _interopRequireDefault(_promise); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _classCallCheck2 = require("babel-runtime/helpers/classCallCheck"); | ||
var Throttler = /*#__PURE__*/function () { | ||
function Throttler(cb) { | ||
(0, _classCallCheck2.default)(this, Throttler); | ||
this.cb = cb; | ||
this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
} | ||
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); | ||
(0, _createClass2.default)(Throttler, [{ | ||
key: "execute", | ||
value: function execute(promise) { | ||
var _this = this; | ||
var _createClass2 = require("babel-runtime/helpers/createClass"); | ||
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 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 | ||
var _createClass3 = _interopRequireDefault(_createClass2); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var Throttler = function () { | ||
function Throttler(cb) { | ||
(0, _classCallCheck3.default)(this, Throttler); | ||
this.cb = cb; | ||
this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
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 | ||
}); | ||
}); | ||
} | ||
(0, _createClass3.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, | ||
isError: false | ||
}); | ||
// NOTE: this is exposed only for testing and should not be used outside of that context | ||
this._executedPromise = _promise2.default.all([promise, new _promise2.default(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({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
} | ||
}]); | ||
return Throttler; | ||
}, { | ||
key: "reset", | ||
value: function reset() { | ||
this.cb({ | ||
isProcessing: false, | ||
isProcessed: false, | ||
isComplete: false, | ||
isError: false | ||
}); | ||
} | ||
}]); | ||
return Throttler; | ||
}(); | ||
exports.default = { | ||
create: function create(cb) { | ||
return new Throttler(cb); | ||
} | ||
}; | ||
var _default = { | ||
create: function create(cb) { | ||
return new Throttler(cb); | ||
} | ||
}; | ||
exports.default = _default; |
@@ -1,6 +0,3 @@ | ||
import bluebird from 'bluebird'; | ||
import throttler from './index'; | ||
it('should create a throttler', () => { | ||
@@ -29,3 +26,3 @@ const cb = jest.fn(); | ||
it('should allow promise execution', async () => { | ||
const promise = bluebird.resolve(); | ||
const promise = Promise.resolve(); | ||
inst.execute(promise) | ||
@@ -45,3 +42,3 @@ expect(cb).toHaveBeenCalledWith({ | ||
jest.runTimersToTime(700); | ||
jest.advanceTimersByTime(700); | ||
@@ -64,3 +61,3 @@ await inst._executedPromise; | ||
jest.runTimersToTime(700); | ||
jest.advanceTimersByTime(700); | ||
@@ -67,0 +64,0 @@ await inst._executedPromise; |
{ | ||
"name": "@scoir/async-throttler", | ||
"version": "2.0.1", | ||
"version": "3.0.0-beta.b0e6db42", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "author": "@scoir", |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
10467
7
297
2