summaryrefslogtreecommitdiff
path: root/node_modules/p-limit/index.js
diff options
context:
space:
mode:
authorLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
committerLinuxWizard42 <computerwizard@linuxmail.org>2022-10-12 22:54:37 +0300
commit703e03aba33f234712206769f57717ba7d92d23d (patch)
tree0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/p-limit/index.js
parentab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff)
downloadFlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz
FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/p-limit/index.js')
-rw-r--r--node_modules/p-limit/index.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/p-limit/index.js b/node_modules/p-limit/index.js
new file mode 100644
index 0000000..873f0e7
--- /dev/null
+++ b/node_modules/p-limit/index.js
@@ -0,0 +1,42 @@
+'use strict';
+const pTry = require('p-try');
+
+module.exports = concurrency => {
+ if (concurrency < 1) {
+ throw new TypeError('Expected `concurrency` to be a number from 1 and up');
+ }
+
+ const queue = [];
+ let activeCount = 0;
+
+ const next = () => {
+ activeCount--;
+
+ if (queue.length > 0) {
+ queue.shift()();
+ }
+ };
+
+ return fn => new Promise((resolve, reject) => {
+ const run = () => {
+ activeCount++;
+
+ pTry(fn).then(
+ val => {
+ resolve(val);
+ next();
+ },
+ err => {
+ reject(err);
+ next();
+ }
+ );
+ };
+
+ if (activeCount < concurrency) {
+ run();
+ } else {
+ queue.push(run);
+ }
+ });
+};