/
var
/
www
/
greso.tech
/
server
/
nsm
/
node_modules
/
p-limit
/
/var/www/greso.tech/server/nsm/node_modules/p-limit
mkdir
upload
Name
Size
Mode
Actions
index.d.ts
1418
0644
edit
dl
rm
index.js
1521
0644
edit
dl
rm
license
1117
0644
edit
dl
rm
package.json
928
0644
edit
dl
rm
readme.md
2770
0644
edit
dl
rm
Edit:
/var/www/greso.tech/server/nsm/node_modules/p-limit/index.js
(1521B)
'use strict'; const Queue = require('yocto-queue'); const pLimit = concurrency => { if (!((Number.isInteger(concurrency) || concurrency === Infinity) && concurrency > 0)) { throw new TypeError('Expected `concurrency` to be a number from 1 and up'); } const queue = new Queue(); let activeCount = 0; const next = () => { activeCount--; if (queue.size > 0) { queue.dequeue()(); } }; const run = async (fn, resolve, ...args) => { activeCount++; const result = (async () => fn(...args))(); resolve(result); try { await result; } catch {} next(); }; const enqueue = (fn, resolve, ...args) => { queue.enqueue(run.bind(null, fn, resolve, ...args)); (async () => { // This function needs to wait until the next microtask before comparing // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously // when the run function is dequeued and called. The comparison in the if-statement // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. await Promise.resolve(); if (activeCount < concurrency && queue.size > 0) { queue.dequeue()(); } })(); }; const generator = (fn, ...args) => new Promise(resolve => { enqueue(fn, resolve, ...args); }); Object.defineProperties(generator, { activeCount: { get: () => activeCount }, pendingCount: { get: () => queue.size }, clearQueue: { value: () => { queue.clear(); } } }); return generator; }; module.exports = pLimit;
Save
cmd:
run