.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / p-limit / index.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/p-limit/index.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/p-limit/index.js
new file mode 100644 (file)
index 0000000..873f0e7
--- /dev/null
@@ -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);
+               }
+       });
+};