update
This commit is contained in:
15
package/node_modules/promise-call-limit/LICENSE
generated
vendored
Normal file
15
package/node_modules/promise-call-limit/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
87
package/node_modules/promise-call-limit/dist/commonjs/index.js
generated
vendored
Normal file
87
package/node_modules/promise-call-limit/dist/commonjs/index.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.callLimit = void 0;
|
||||
const os = __importStar(require("node:os"));
|
||||
// availableParallelism available only since node v19, for older versions use
|
||||
// cpus() cpus() can return an empty list if /proc is not mounted, use 1 in
|
||||
// this case
|
||||
/* c8 ignore start */
|
||||
const defLimit = 'availableParallelism' in os
|
||||
? Math.max(1, os.availableParallelism() - 1)
|
||||
: Math.max(1, os.cpus().length - 1);
|
||||
const callLimit = (queue, { limit = defLimit, rejectLate } = {}) => new Promise((res, rej) => {
|
||||
let active = 0;
|
||||
let current = 0;
|
||||
const results = [];
|
||||
// Whether or not we rejected, distinct from the rejection just in case the rejection itself is falsey
|
||||
let rejected = false;
|
||||
let rejection;
|
||||
const reject = (er) => {
|
||||
if (rejected)
|
||||
return;
|
||||
rejected = true;
|
||||
rejection ??= er;
|
||||
if (!rejectLate)
|
||||
rej(rejection);
|
||||
};
|
||||
let resolved = false;
|
||||
const resolve = () => {
|
||||
if (resolved || active > 0)
|
||||
return;
|
||||
resolved = true;
|
||||
res(results);
|
||||
};
|
||||
const run = () => {
|
||||
const c = current++;
|
||||
if (c >= queue.length)
|
||||
return rejected ? reject() : resolve();
|
||||
active++;
|
||||
const step = queue[c];
|
||||
/* c8 ignore start */
|
||||
if (!step)
|
||||
throw new Error('walked off queue');
|
||||
/* c8 ignore stop */
|
||||
results[c] = step()
|
||||
.then(result => {
|
||||
active--;
|
||||
results[c] = result;
|
||||
return result;
|
||||
}, er => {
|
||||
active--;
|
||||
reject(er);
|
||||
})
|
||||
.then(result => {
|
||||
if (rejected && active === 0)
|
||||
return rej(rejection);
|
||||
run();
|
||||
return result;
|
||||
});
|
||||
};
|
||||
for (let i = 0; i < limit; i++)
|
||||
run();
|
||||
});
|
||||
exports.callLimit = callLimit;
|
||||
//# sourceMappingURL=index.js.map
|
||||
3
package/node_modules/promise-call-limit/dist/commonjs/package.json
generated
vendored
Normal file
3
package/node_modules/promise-call-limit/dist/commonjs/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
60
package/node_modules/promise-call-limit/dist/esm/index.js
generated
vendored
Normal file
60
package/node_modules/promise-call-limit/dist/esm/index.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
import * as os from 'node:os';
|
||||
// availableParallelism available only since node v19, for older versions use
|
||||
// cpus() cpus() can return an empty list if /proc is not mounted, use 1 in
|
||||
// this case
|
||||
/* c8 ignore start */
|
||||
const defLimit = 'availableParallelism' in os
|
||||
? Math.max(1, os.availableParallelism() - 1)
|
||||
: Math.max(1, os.cpus().length - 1);
|
||||
export const callLimit = (queue, { limit = defLimit, rejectLate } = {}) => new Promise((res, rej) => {
|
||||
let active = 0;
|
||||
let current = 0;
|
||||
const results = [];
|
||||
// Whether or not we rejected, distinct from the rejection just in case the rejection itself is falsey
|
||||
let rejected = false;
|
||||
let rejection;
|
||||
const reject = (er) => {
|
||||
if (rejected)
|
||||
return;
|
||||
rejected = true;
|
||||
rejection ??= er;
|
||||
if (!rejectLate)
|
||||
rej(rejection);
|
||||
};
|
||||
let resolved = false;
|
||||
const resolve = () => {
|
||||
if (resolved || active > 0)
|
||||
return;
|
||||
resolved = true;
|
||||
res(results);
|
||||
};
|
||||
const run = () => {
|
||||
const c = current++;
|
||||
if (c >= queue.length)
|
||||
return rejected ? reject() : resolve();
|
||||
active++;
|
||||
const step = queue[c];
|
||||
/* c8 ignore start */
|
||||
if (!step)
|
||||
throw new Error('walked off queue');
|
||||
/* c8 ignore stop */
|
||||
results[c] = step()
|
||||
.then(result => {
|
||||
active--;
|
||||
results[c] = result;
|
||||
return result;
|
||||
}, er => {
|
||||
active--;
|
||||
reject(er);
|
||||
})
|
||||
.then(result => {
|
||||
if (rejected && active === 0)
|
||||
return rej(rejection);
|
||||
run();
|
||||
return result;
|
||||
});
|
||||
};
|
||||
for (let i = 0; i < limit; i++)
|
||||
run();
|
||||
});
|
||||
//# sourceMappingURL=index.js.map
|
||||
3
package/node_modules/promise-call-limit/dist/esm/package.json
generated
vendored
Normal file
3
package/node_modules/promise-call-limit/dist/esm/package.json
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
66
package/node_modules/promise-call-limit/package.json
generated
vendored
Normal file
66
package/node_modules/promise-call-limit/package.json
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"name": "promise-call-limit",
|
||||
"version": "3.0.1",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"description": "Call an array of promise-returning functions, restricting concurrency to a specified limit.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/isaacs/promise-call-limit"
|
||||
},
|
||||
"author": "Isaac Z. Schlueter <i@izs.me> (https://izs.me)",
|
||||
"license": "ISC",
|
||||
"scripts": {
|
||||
"prepare": "tshy",
|
||||
"pretest": "npm run prepare",
|
||||
"snap": "tap",
|
||||
"test": "tap",
|
||||
"preversion": "npm test",
|
||||
"postversion": "npm publish",
|
||||
"prepublishOnly": "git push origin --follow-tags"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^3.2.1",
|
||||
"tap": "^18.6.1",
|
||||
"tshy": "^1.8.2",
|
||||
"format": "prettier --write . --loglevel warn --ignore-path ../../.prettierignore --cache",
|
||||
"typedoc": "typedoc"
|
||||
},
|
||||
"prettier": {
|
||||
"semi": false,
|
||||
"printWidth": 70,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"singleQuote": true,
|
||||
"jsxSingleQuote": false,
|
||||
"bracketSameLine": true,
|
||||
"arrowParens": "avoid",
|
||||
"endOfLine": "lf"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
},
|
||||
"tshy": {
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": "./src/index.ts"
|
||||
}
|
||||
},
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": {
|
||||
"import": {
|
||||
"types": "./dist/esm/index.d.ts",
|
||||
"default": "./dist/esm/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./dist/commonjs/index.d.ts",
|
||||
"default": "./dist/commonjs/index.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"main": "./dist/commonjs/index.js",
|
||||
"types": "./dist/commonjs/index.d.ts",
|
||||
"type": "module"
|
||||
}
|
||||
Reference in New Issue
Block a user