@jcoreio/async-throttle
Advanced tools
Comparing version 1.6.0 to 1.6.1
@@ -1,16 +0,15 @@ | ||
export class CanceledError extends Error {} | ||
export type ThrottledFunction<Args extends any[], Value> = { | ||
(...args: Args): Promise<Value> | ||
invokeIgnoreResult: (...args: Args) => void | ||
cancel: () => Promise<void> | ||
flush: () => Promise<void> | ||
declare class CanceledError extends Error { | ||
constructor(); | ||
} | ||
export default function throttle<Args extends any[], Value>( | ||
fn: (...args: Args) => Value | Promise<Value>, | ||
_wait?: number | null, | ||
options?: { | ||
getNextArgs?: (args0: Args, args1: Args) => Args | ||
} | ||
): ThrottledFunction<Args, Value> | ||
export type ThrottledFunction<Args extends Array<any>, Value> = { | ||
(...args: Args): Promise<Value>; | ||
invokeIgnoreResult: (...args: Args) => void; | ||
cancel: () => Promise<void>; | ||
flush: () => Promise<void>; | ||
}; | ||
declare function throttle<Args extends any[], Value>(fn: (...args: Args) => Value | Promise<Value>, _wait?: number | null | undefined, options?: { | ||
getNextArgs?: (args0: Args, args1: Args) => Args; | ||
}): ThrottledFunction<Args, Value>; | ||
export default throttle; | ||
export { CanceledError }; | ||
//# sourceMappingURL=index.d.ts.map |
162
index.js
"use strict"; | ||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports["default"] = exports.CanceledError = void 0; | ||
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); | ||
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); | ||
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); | ||
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); | ||
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); | ||
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); | ||
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper")); | ||
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } | ||
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } | ||
var CanceledError = /*#__PURE__*/function (_Error) { | ||
(0, _inherits2["default"])(CanceledError, _Error); | ||
var _super = _createSuper(CanceledError); | ||
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); } | ||
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } | ||
var CanceledError = exports.CanceledError = /*#__PURE__*/function (_Error) { | ||
function CanceledError() { | ||
var _this; | ||
(0, _classCallCheck2["default"])(this, CanceledError); | ||
_this = _super.call(this, 'throttled invocation was canceled'); | ||
_this = _callSuper(this, CanceledError, ['throttled invocation was canceled']); | ||
_this.name = 'CanceledError'; | ||
return _this; | ||
} | ||
return CanceledError; | ||
}( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
(0, _inherits2["default"])(CanceledError, _Error); | ||
return (0, _createClass2["default"])(CanceledError); | ||
}(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error)); | ||
var Delay = /*#__PURE__*/function () { | ||
function Delay(lastInvocationDone, wait) { | ||
var _this2 = this; | ||
(0, _classCallCheck2["default"])(this, Delay); | ||
(0, _defineProperty2["default"])(this, "ready", void 0); | ||
(0, _defineProperty2["default"])(this, "canceled", false); | ||
@@ -61,7 +46,6 @@ var delay = new Promise(function (resolve) { | ||
}).then(function () { | ||
_this2.ready = null; | ||
_this2.ready = undefined; | ||
}); | ||
} | ||
(0, _createClass2["default"])(Delay, [{ | ||
return (0, _createClass2["default"])(Delay, [{ | ||
key: "flush", | ||
@@ -80,40 +64,47 @@ value: function flush() { | ||
}, { | ||
key: Symbol.toStringTag, | ||
get: function get() { | ||
return 'Delay'; | ||
} | ||
}, { | ||
key: "then", | ||
value: function then(handler) { | ||
value: function then(onfulfilled, onrejected) { | ||
var _this3 = this; | ||
return (this.ready || Promise.resolve()).then(function () { | ||
if (_this3.canceled) throw new CanceledError(); | ||
return handler(); | ||
}); | ||
}).then(onfulfilled, onrejected); | ||
} | ||
}, { | ||
key: "catch", | ||
value: function _catch(onrejected) { | ||
return this.then(undefined, onrejected); | ||
} | ||
}, { | ||
key: "finally", | ||
value: function _finally(onfinally) { | ||
return this.then()["finally"](onfinally); | ||
} | ||
}]); | ||
return Delay; | ||
}(); | ||
function throttle(fn, _wait) { | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
var wait = _wait != null && Number.isFinite(_wait) ? Math.max(_wait, 0) : 0; | ||
var getNextArgs = options.getNextArgs || function (prev, next) { | ||
return next; | ||
}; | ||
var nextArgs; | ||
var lastInvocationDone = null; | ||
var delay = null; | ||
var nextInvocation = null; | ||
var lastInvocationDone = undefined; | ||
var delay = undefined; | ||
var nextInvocation = undefined; | ||
function invoke() { | ||
var args = nextArgs; // istanbul ignore next | ||
var args = nextArgs; | ||
// istanbul ignore next | ||
if (!args) { | ||
return Promise.reject(new Error('unexpected error: nextArgs is null')); | ||
} | ||
nextInvocation = null; | ||
nextArgs = null; | ||
nextInvocation = undefined; | ||
nextArgs = undefined; | ||
var result = Promise.resolve(fn.apply(void 0, (0, _toConsumableArray2["default"])(args))); | ||
lastInvocationDone = result["catch"](function () {}).then(function () { | ||
lastInvocationDone = null; | ||
lastInvocationDone = undefined; | ||
}); | ||
@@ -123,3 +114,2 @@ delay = new Delay(lastInvocationDone, wait); | ||
} | ||
function setNextArgs(args) { | ||
@@ -129,7 +119,5 @@ nextArgs = nextArgs ? getNextArgs(nextArgs, args) : args; | ||
} | ||
function doInvoke() { | ||
return nextInvocation = (delay || Promise.resolve()).then(invoke); | ||
} | ||
function wrapper() { | ||
@@ -140,3 +128,2 @@ try { | ||
} | ||
setNextArgs(args); | ||
@@ -146,5 +133,5 @@ } catch (error) { | ||
} | ||
return nextInvocation || doInvoke(); | ||
} | ||
/** | ||
@@ -172,4 +159,2 @@ * Calls the throttled function soon, but doesn't return a promise, catches | ||
*/ | ||
wrapper.invokeIgnoreResult = function () { | ||
@@ -179,5 +164,3 @@ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | ||
} | ||
setNextArgs(args); | ||
if (!nextInvocation) { | ||
@@ -192,42 +175,33 @@ doInvoke()["catch"](function (err) { | ||
}; | ||
wrapper.cancel = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { | ||
wrapper.cancel = /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() { | ||
var _delay, _delay$cancel; | ||
var prevLastInvocationDone; | ||
return _regenerator["default"].wrap(function _callee$(_context) { | ||
while (1) { | ||
switch (_context.prev = _context.next) { | ||
case 0: | ||
prevLastInvocationDone = lastInvocationDone; | ||
(_delay = delay) === null || _delay === void 0 ? void 0 : (_delay$cancel = _delay.cancel) === null || _delay$cancel === void 0 ? void 0 : _delay$cancel.call(_delay); | ||
nextInvocation = null; | ||
nextArgs = null; | ||
lastInvocationDone = null; | ||
delay = null; | ||
_context.next = 8; | ||
return prevLastInvocationDone; | ||
case 8: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
while (1) switch (_context.prev = _context.next) { | ||
case 0: | ||
prevLastInvocationDone = lastInvocationDone; | ||
(_delay = delay) === null || _delay === void 0 || (_delay$cancel = _delay.cancel) === null || _delay$cancel === void 0 || _delay$cancel.call(_delay); | ||
nextInvocation = undefined; | ||
nextArgs = undefined; | ||
lastInvocationDone = undefined; | ||
delay = undefined; | ||
_context.next = 8; | ||
return prevLastInvocationDone; | ||
case 8: | ||
case "end": | ||
return _context.stop(); | ||
} | ||
}, _callee); | ||
})); | ||
wrapper.flush = /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() { | ||
wrapper.flush = /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() { | ||
var _delay2, _delay2$flush; | ||
return _regenerator["default"].wrap(function _callee2$(_context2) { | ||
while (1) { | ||
switch (_context2.prev = _context2.next) { | ||
case 0: | ||
(_delay2 = delay) === null || _delay2 === void 0 ? void 0 : (_delay2$flush = _delay2.flush) === null || _delay2$flush === void 0 ? void 0 : _delay2$flush.call(_delay2); | ||
_context2.next = 3; | ||
return lastInvocationDone; | ||
case 3: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
while (1) switch (_context2.prev = _context2.next) { | ||
case 0: | ||
(_delay2 = delay) === null || _delay2 === void 0 || (_delay2$flush = _delay2.flush) === null || _delay2$flush === void 0 || _delay2$flush.call(_delay2); | ||
_context2.next = 3; | ||
return lastInvocationDone; | ||
case 3: | ||
case "end": | ||
return _context2.stop(); | ||
} | ||
@@ -238,5 +212,7 @@ }, _callee2); | ||
} | ||
; | ||
throttle.CanceledError = CanceledError; | ||
module.exports = throttle; | ||
var _default = exports["default"] = throttle; | ||
module.exports = exports.default; | ||
module.exports.default = exports.default; | ||
//# sourceMappingURL=index.js.map |
119
package.json
{ | ||
"name": "@jcoreio/async-throttle", | ||
"version": "1.6.0", | ||
"version": "1.6.1", | ||
"description": "throttle async and promise-returning functions. Other packages don't do it right.", | ||
"main": "index.js", | ||
"sideEffects": false, | ||
"scripts": { | ||
"lint": "eslint $npm_package_config_eslint", | ||
"lint:fix": "eslint --fix $npm_package_config_eslint", | ||
"prettier": "prettier --write $npm_package_config_prettier", | ||
"prettier:check": "prettier --list-different $npm_package_config_prettier", | ||
"flow": "flow", | ||
"flow:coverage": "for file in src/**.js test/**.js; do echo $file; flow coverage $file; done", | ||
"clean": "rimraf es lib $(cd src; ls) *.js.flow *.d.ts", | ||
"build": "npm run clean && babel src --out-dir es && flow-copy-source -v src/ es && copy src/**/*.d.ts es && cross-env BABEL_ENV=es5 babel src --out-dir . && flow-copy-source -v src/ . && copy src/**/*.d.ts .", | ||
"test": "cross-env NODE_ENV=test BABEL_ENV=es5 mocha $npm_package_config_mocha && cross-env NODE_ENV=test BABEL_ENV=coverage nyc --reporter=lcov --reporter=text mocha $npm_package_config_mocha", | ||
"test:watch": "cross-env NODE_ENV=test BABEL_ENV=test mocha --watch $npm_package_config_mocha", | ||
"test:debug": "cross-env NODE_ENV=test BABEL_ENV=test mocha --inspect-brk $npm_package_config_mocha", | ||
"codecov": "nyc report --reporter=text-lcov > coverage.lcov; codecov", | ||
"prepublishOnly": "npm run clean && npm run prettier:check && npm run lint && flow && tsc && npm test && npm run build", | ||
"open:coverage": "open coverage/lcov-report/index.html", | ||
"semantic-release": "semantic-release" | ||
}, | ||
"husky": { | ||
"hooks": { | ||
"pre-commit": "lint-staged && npm run lint && flow && tsc", | ||
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS", | ||
"pre-push": "npm test" | ||
} | ||
}, | ||
"lint-staged": { | ||
"*.{js,json,css,md,ts}": [ | ||
"prettier --write" | ||
] | ||
}, | ||
"commitlint": { | ||
"extends": [ | ||
"@jedwards1211/commitlint-config" | ||
] | ||
}, | ||
"prettier": { | ||
"semi": false, | ||
"singleQuote": true, | ||
"trailingComma": "es5" | ||
}, | ||
"config": { | ||
"mocha": "-r @babel/register test/configure.js 'test/**/*.js'", | ||
"eslint": "src test --cache", | ||
"prettier": "*.{json,md,js} {src,test}/**/*.{js,ts}", | ||
"commitizen": { | ||
"path": "cz-conventional-changelog" | ||
} | ||
}, | ||
"nyc": { | ||
"include": [ | ||
"src/**/*.js" | ||
], | ||
"require": [ | ||
"@babel/register" | ||
], | ||
"sourceMap": false, | ||
"instrument": false | ||
}, | ||
"repository": { | ||
@@ -80,44 +22,23 @@ "type": "git", | ||
"homepage": "https://github.com/jcoreio/async-throttle#readme", | ||
"devDependencies": { | ||
"@babel/cli": "^7.12.10", | ||
"@babel/core": "^7.12.10", | ||
"@babel/eslint-parser": "^7.12.13", | ||
"@babel/node": "^7.20.7", | ||
"@babel/plugin-transform-runtime": "^7.12.10", | ||
"@babel/preset-env": "^7.12.11", | ||
"@babel/preset-flow": "^7.12.1", | ||
"@babel/register": "^7.12.10", | ||
"@commitlint/cli": "^11.0.0", | ||
"@commitlint/config-conventional": "^11.0.0", | ||
"@jedwards1211/commitlint-config": "^1.0.2", | ||
"@jedwards1211/eslint-config": "^2.0.2", | ||
"@jedwards1211/eslint-config-flow": "^3.0.0", | ||
"babel-eslint": "^10.1.0", | ||
"babel-plugin-istanbul": "^6.0.0", | ||
"chai": "^4.2.0", | ||
"chai-as-promised": "^7.1.1", | ||
"codecov": "^3.8.1", | ||
"copy": "^0.3.2", | ||
"cross-env": "^7.0.3", | ||
"eslint": "^7.18.0", | ||
"eslint-config-prettier": "^7.2.0", | ||
"eslint-plugin-flowtype": "^5.2.0", | ||
"flow-bin": "^0.143.1", | ||
"flow-copy-source": "https://github.com/jedwards1211/flow-copy-source#no-watch", | ||
"husky": "^4.3.8", | ||
"istanbul": "^0.4.5", | ||
"lint-staged": "^10.5.3", | ||
"mocha": "^8.2.1", | ||
"nyc": "^15.1.0", | ||
"prettier": "^2.2.1", | ||
"prettier-eslint": "^12.0.0", | ||
"rimraf": "^3.0.2", | ||
"semantic-release": "^17.3.7", | ||
"sinon": "^9.0.3", | ||
"typescript": "^4.1.3", | ||
"waait": "^1.0.5" | ||
"dependencies": { | ||
"@babel/runtime": "^7.18.6" | ||
}, | ||
"dependencies": { | ||
"@babel/runtime": "^7.12.5" | ||
"main": "index.js", | ||
"module": "index.mjs", | ||
"types": "index.d.ts", | ||
"exports": { | ||
"./package.json": "./package.json", | ||
".": { | ||
"types": "./index.d.ts", | ||
"import": "./index.mjs", | ||
"default": "./index.js" | ||
} | ||
}, | ||
"engines": { | ||
"node": ">=16" | ||
}, | ||
"packageManager": "pnpm@8.11.0", | ||
"@jcoreio/toolchain": { | ||
"migratedVersion": "4.9.1" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
47292
0
13
519
1
Updated@babel/runtime@^7.18.6