UNPKG

create-storybook

Version:

Storybook installer: Develop, document, and test UI components in isolation

11 lines (8 loc) 1.68 kB
import ESM_COMPAT_Module1 from 'node:module'; import 'node:url'; import 'node:path'; import { Queue } from './chunk-O2GNSM63.js'; import './chunk-VASF4FB5.js'; ESM_COMPAT_Module1.createRequire(import.meta.url); function pLimit(concurrency){validateConcurrency(concurrency);let queue=new Queue,activeCount=0,resumeNext=()=>{activeCount<concurrency&&queue.size>0&&(queue.dequeue()(),activeCount++);},next=()=>{activeCount--,resumeNext();},run=async(function_,resolve,arguments_)=>{let result=(async()=>function_(...arguments_))();resolve(result);try{await result;}catch{}next();},enqueue=(function_,resolve,arguments_)=>{new Promise(internalResolve=>{queue.enqueue(internalResolve);}).then(run.bind(void 0,function_,resolve,arguments_)),(async()=>(await Promise.resolve(),activeCount<concurrency&&resumeNext()))();},generator=(function_,...arguments_)=>new Promise(resolve=>{enqueue(function_,resolve,arguments_);});return Object.defineProperties(generator,{activeCount:{get:()=>activeCount},pendingCount:{get:()=>queue.size},clearQueue:{value(){queue.clear();}},concurrency:{get:()=>concurrency,set(newConcurrency){validateConcurrency(newConcurrency),concurrency=newConcurrency,queueMicrotask(()=>{for(;activeCount<concurrency&&queue.size>0;)resumeNext();});}}}),generator}function limitFunction(function_,option){let{concurrency}=option,limit=pLimit(concurrency);return (...arguments_)=>limit(()=>function_(...arguments_))}function validateConcurrency(concurrency){if(!((Number.isInteger(concurrency)||concurrency===Number.POSITIVE_INFINITY)&&concurrency>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up")} export { pLimit as default, limitFunction };