@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await queue.push({ value, done: false }).promise;\n }\n })\n ).then(async () => queue.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["combine","iterables","queue","createQueue","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAEaA;;;eAAAA;;;0BAFe;AAErB,MAAMA,UAAU,CAAiB,GAAGC;IACzC,MAAMC,QAAQC,IAAAA,qBAAW;IAEzBC,QAAQC,GAAG,CACTJ,UAAUK,GAAG,CAAC,OAAOC;QACnB,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAML,MAAMO,IAAI,CAAC;gBAAED;gBAAOE,MAAM;YAAM,GAAGC,OAAO;QAClD;IACF,IACAC,IAAI,CAAC,UAAYV,MAAMQ,IAAI,CAAC;YAAEF,OAAO;YAAME,MAAM;QAAK;IAExD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOb,MAAMc,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF"} | ||
| {"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await queue.push({ value, done: false }).promise;\n }\n }),\n ).then(async () => queue.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["combine","iterables","queue","createQueue","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAEaA;;;eAAAA;;;0BAFe;AAErB,MAAMA,UAAU,CAAiB,GAAGC;IACzC,MAAMC,QAAQC,IAAAA,qBAAW;IAEzBC,QAAQC,GAAG,CACTJ,UAAUK,GAAG,CAAC,OAAOC;QACnB,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAML,MAAMO,IAAI,CAAC;gBAAED;gBAAOE,MAAM;YAAM,GAAGC,OAAO;QAClD;IACF,IACAC,IAAI,CAAC,UAAYV,MAAMQ,IAAI,CAAC;YAAEF,OAAO;YAAME,MAAM;QAAK;IAExD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOb,MAAMc,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await queue.push({ value, done: false }).promise;\n }\n })\n ).then(async () => queue.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createQueue","combine","iterables","queue","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAEzC,OAAO,MAAMC,UAAU,CAAiB,GAAGC;IACzC,MAAMC,QAAQH;IAEdI,QAAQC,GAAG,CACTH,UAAUI,GAAG,CAAC,OAAOC;QACnB,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAMJ,MAAMM,IAAI,CAAC;gBAAED;gBAAOE,MAAM;YAAM,GAAGC,OAAO;QAClD;IACF,IACAC,IAAI,CAAC,UAAYT,MAAMO,IAAI,CAAC;YAAEF,OAAO;YAAME,MAAM;QAAK;IAExD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOZ,MAAMa,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF,EAAE"} | ||
| {"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await queue.push({ value, done: false }).promise;\n }\n }),\n ).then(async () => queue.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createQueue","combine","iterables","queue","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAEzC,OAAO,MAAMC,UAAU,CAAiB,GAAGC;IACzC,MAAMC,QAAQH;IAEdI,QAAQC,GAAG,CACTH,UAAUI,GAAG,CAAC,OAAOC;QACnB,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAMJ,MAAMM,IAAI,CAAC;gBAAED;gBAAOE,MAAM;YAAM,GAAGC,OAAO;QAClD;IACF,IACAC,IAAI,CAAC,UAAYT,MAAMO,IAAI,CAAC;YAAEF,OAAO;YAAME,MAAM;QAAK;IAExD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOZ,MAAMa,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF,EAAE"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport interface TaskCallback<T> {\n (value: T): Promise<void>;\n}\n\nexport interface Task<T, R = unknown> {\n (callback: TaskCallback<T>): R;\n}\n\nexport const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await queue.push({ value, done: false }).promise;\n })\n ).then(async (value) => queue.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["generatorify","task","queue","createQueue","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAUaA;;;eAAAA;;;0BAVe;AAUrB,MAAMA,eAAe,CAAOC;IACjC,MAAMC,QAAQC,IAAAA,qBAAW;IAEzBC,QAAQC,OAAO,CACbJ,KAAK,OAAOK;QACV,MAAMJ,MAAMK,IAAI,CAAC;YAAED;YAAOE,MAAM;QAAM,GAAGC,OAAO;IAClD,IACAC,IAAI,CAAC,OAAOJ,QAAUJ,MAAMM,IAAI,CAAC;YAAEF;YAAOE,MAAM;QAAK;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOX,MAAMY,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF"} | ||
| {"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport interface TaskCallback<T> {\n (value: T): Promise<void>;\n}\n\nexport interface Task<T, R = unknown> {\n (callback: TaskCallback<T>): R;\n}\n\nexport const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await queue.push({ value, done: false }).promise;\n }),\n ).then(async (value) => queue.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["generatorify","task","queue","createQueue","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAUaA;;;eAAAA;;;0BAVe;AAUrB,MAAMA,eAAe,CAAOC;IACjC,MAAMC,QAAQC,IAAAA,qBAAW;IAEzBC,QAAQC,OAAO,CACbJ,KAAK,OAAOK;QACV,MAAMJ,MAAMK,IAAI,CAAC;YAAED;YAAOE,MAAM;QAAM,GAAGC,OAAO;IAClD,IACAC,IAAI,CAAC,OAAOJ,QAAUJ,MAAMM,IAAI,CAAC;YAAEF;YAAOE,MAAM;QAAK;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOX,MAAMY,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport interface TaskCallback<T> {\n (value: T): Promise<void>;\n}\n\nexport interface Task<T, R = unknown> {\n (callback: TaskCallback<T>): R;\n}\n\nexport const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await queue.push({ value, done: false }).promise;\n })\n ).then(async (value) => queue.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createQueue","generatorify","task","queue","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAUzC,OAAO,MAAMC,eAAe,CAAOC;IACjC,MAAMC,QAAQH;IAEdI,QAAQC,OAAO,CACbH,KAAK,OAAOI;QACV,MAAMH,MAAMI,IAAI,CAAC;YAAED;YAAOE,MAAM;QAAM,GAAGC,OAAO;IAClD,IACAC,IAAI,CAAC,OAAOJ,QAAUH,MAAMK,IAAI,CAAC;YAAEF;YAAOE,MAAM;QAAK;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOV,MAAMW,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF,EAAE"} | ||
| {"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createQueue } from './queue.js';\n\nexport interface TaskCallback<T> {\n (value: T): Promise<void>;\n}\n\nexport interface Task<T, R = unknown> {\n (callback: TaskCallback<T>): R;\n}\n\nexport const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {\n const queue = createQueue<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await queue.push({ value, done: false }).promise;\n }),\n ).then(async (value) => queue.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return queue.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createQueue","generatorify","task","queue","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,WAAW,QAAQ,aAAa;AAUzC,OAAO,MAAMC,eAAe,CAAOC;IACjC,MAAMC,QAAQH;IAEdI,QAAQC,OAAO,CACbH,KAAK,OAAOI;QACV,MAAMH,MAAMI,IAAI,CAAC;YAAED;YAAOE,MAAM;QAAM,GAAGC,OAAO;IAClD,IACAC,IAAI,CAAC,OAAOJ,QAAUH,MAAMK,IAAI,CAAC;YAAEF;YAAOE,MAAM;QAAK;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC;YACpB,OAAO;gBACLC;oBACE,OAAOV,MAAMW,IAAI,GAAGL,OAAO;gBAC7B;YACF;QACF;IACF;AACF,EAAE"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/queue.ts"],"sourcesContent":["import { defer, Deferred, Status } from './defer.js';\n\nexport const createQueue = <T, E = Error>() => {\n const pendingQueue: Deferred<T, E>[] = [];\n const resolvedQueue: Deferred<T, E>[] = [];\n const requestQueue: Deferred<T, E>[] = [];\n\n const push = (value: T): Deferred<T, E> => {\n const task = defer<T, E>();\n pendingQueue.push(task);\n\n Promise.resolve(value)\n .then(task.resolve)\n .catch(task.reject)\n .finally(() => {\n pendingQueue.splice(pendingQueue.indexOf(task), 1);\n if (requestQueue.length > 0) {\n const request = requestQueue.shift();\n request.resolve(task.promise);\n } else {\n resolvedQueue.push(task);\n }\n });\n\n return task;\n };\n\n const pull = (): Deferred<T, E> => {\n if (resolvedQueue.length > 0) {\n return resolvedQueue.shift();\n }\n const task = defer<T, E>();\n requestQueue.push(task);\n\n return task;\n };\n\n return {\n push,\n pull,\n done(value: T) {\n push(value);\n return Promise.all(\n [...pendingQueue, ...resolvedQueue, ...requestQueue].map(\n (d) => d.promise\n )\n );\n },\n get size() {\n return pendingQueue.length + resolvedQueue.length + requestQueue.length;\n },\n };\n};\n"],"names":["createQueue","pendingQueue","resolvedQueue","requestQueue","push","value","task","defer","Promise","resolve","then","catch","reject","finally","splice","indexOf","length","request","shift","promise","pull","done","all","map","d","size"],"mappings":";;;;+BAEaA;;;eAAAA;;;0BAF2B;AAEjC,MAAMA,cAAc;IACzB,MAAMC,eAAiC,EAAE;IACzC,MAAMC,gBAAkC,EAAE;IAC1C,MAAMC,eAAiC,EAAE;IAEzC,MAAMC,OAAO,CAACC;QACZ,MAAMC,OAAOC,IAAAA,eAAK;QAClBN,aAAaG,IAAI,CAACE;QAElBE,QAAQC,OAAO,CAACJ,OACbK,IAAI,CAACJ,KAAKG,OAAO,EACjBE,KAAK,CAACL,KAAKM,MAAM,EACjBC,OAAO,CAAC;YACPZ,aAAaa,MAAM,CAACb,aAAac,OAAO,CAACT,OAAO;YAChD,IAAIH,aAAaa,MAAM,GAAG,GAAG;gBAC3B,MAAMC,UAAUd,aAAae,KAAK;gBAClCD,QAAQR,OAAO,CAACH,KAAKa,OAAO;YAC9B,OAAO;gBACLjB,cAAcE,IAAI,CAACE;YACrB;QACF;QAEF,OAAOA;IACT;IAEA,MAAMc,OAAO;QACX,IAAIlB,cAAcc,MAAM,GAAG,GAAG;YAC5B,OAAOd,cAAcgB,KAAK;QAC5B;QACA,MAAMZ,OAAOC,IAAAA,eAAK;QAClBJ,aAAaC,IAAI,CAACE;QAElB,OAAOA;IACT;IAEA,OAAO;QACLF;QACAgB;QACAC,MAAKhB,KAAQ;YACXD,KAAKC;YACL,OAAOG,QAAQc,GAAG,CAChB;mBAAIrB;mBAAiBC;mBAAkBC;aAAa,CAACoB,GAAG,CACtD,CAACC,IAAMA,EAAEL,OAAO;QAGtB;QACA,IAAIM,QAAO;YACT,OAAOxB,aAAae,MAAM,GAAGd,cAAcc,MAAM,GAAGb,aAAaa,MAAM;QACzE;IACF;AACF"} | ||
| {"version":3,"sources":["../src/queue.ts"],"sourcesContent":["import { defer, Deferred } from './defer.js';\n\nexport const createQueue = <T, E = Error>() => {\n const pendingQueue: Deferred<T, E>[] = [];\n const resolvedQueue: Deferred<T, E>[] = [];\n const requestQueue: Deferred<T, E>[] = [];\n\n const push = (value: T): Deferred<T, E> => {\n const task = defer<T, E>();\n pendingQueue.push(task);\n\n Promise.resolve(value)\n .then(task.resolve)\n .catch(task.reject)\n .finally(() => {\n pendingQueue.splice(pendingQueue.indexOf(task), 1);\n if (requestQueue.length > 0) {\n const request = requestQueue.shift();\n request.resolve(task.promise);\n } else {\n resolvedQueue.push(task);\n }\n });\n\n return task;\n };\n\n const pull = (): Deferred<T, E> => {\n if (resolvedQueue.length > 0) {\n return resolvedQueue.shift();\n }\n const task = defer<T, E>();\n requestQueue.push(task);\n\n return task;\n };\n\n return {\n push,\n pull,\n done(value: T) {\n push(value);\n return Promise.all(\n [...pendingQueue, ...resolvedQueue, ...requestQueue].map(\n (d) => d.promise,\n ),\n );\n },\n get size() {\n return pendingQueue.length + resolvedQueue.length + requestQueue.length;\n },\n };\n};\n"],"names":["createQueue","pendingQueue","resolvedQueue","requestQueue","push","value","task","defer","Promise","resolve","then","catch","reject","finally","splice","indexOf","length","request","shift","promise","pull","done","all","map","d","size"],"mappings":";;;;+BAEaA;;;eAAAA;;;0BAFmB;AAEzB,MAAMA,cAAc;IACzB,MAAMC,eAAiC,EAAE;IACzC,MAAMC,gBAAkC,EAAE;IAC1C,MAAMC,eAAiC,EAAE;IAEzC,MAAMC,OAAO,CAACC;QACZ,MAAMC,OAAOC,IAAAA,eAAK;QAClBN,aAAaG,IAAI,CAACE;QAElBE,QAAQC,OAAO,CAACJ,OACbK,IAAI,CAACJ,KAAKG,OAAO,EACjBE,KAAK,CAACL,KAAKM,MAAM,EACjBC,OAAO,CAAC;YACPZ,aAAaa,MAAM,CAACb,aAAac,OAAO,CAACT,OAAO;YAChD,IAAIH,aAAaa,MAAM,GAAG,GAAG;gBAC3B,MAAMC,UAAUd,aAAae,KAAK;gBAClCD,QAAQR,OAAO,CAACH,KAAKa,OAAO;YAC9B,OAAO;gBACLjB,cAAcE,IAAI,CAACE;YACrB;QACF;QAEF,OAAOA;IACT;IAEA,MAAMc,OAAO;QACX,IAAIlB,cAAcc,MAAM,GAAG,GAAG;YAC5B,OAAOd,cAAcgB,KAAK;QAC5B;QACA,MAAMZ,OAAOC,IAAAA,eAAK;QAClBJ,aAAaC,IAAI,CAACE;QAElB,OAAOA;IACT;IAEA,OAAO;QACLF;QACAgB;QACAC,MAAKhB,KAAQ;YACXD,KAAKC;YACL,OAAOG,QAAQc,GAAG,CAChB;mBAAIrB;mBAAiBC;mBAAkBC;aAAa,CAACoB,GAAG,CACtD,CAACC,IAAMA,EAAEL,OAAO;QAGtB;QACA,IAAIM,QAAO;YACT,OAAOxB,aAAae,MAAM,GAAGd,cAAcc,MAAM,GAAGb,aAAaa,MAAM;QACzE;IACF;AACF"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["../src/queue.ts"],"sourcesContent":["import { defer, Deferred, Status } from './defer.js';\n\nexport const createQueue = <T, E = Error>() => {\n const pendingQueue: Deferred<T, E>[] = [];\n const resolvedQueue: Deferred<T, E>[] = [];\n const requestQueue: Deferred<T, E>[] = [];\n\n const push = (value: T): Deferred<T, E> => {\n const task = defer<T, E>();\n pendingQueue.push(task);\n\n Promise.resolve(value)\n .then(task.resolve)\n .catch(task.reject)\n .finally(() => {\n pendingQueue.splice(pendingQueue.indexOf(task), 1);\n if (requestQueue.length > 0) {\n const request = requestQueue.shift();\n request.resolve(task.promise);\n } else {\n resolvedQueue.push(task);\n }\n });\n\n return task;\n };\n\n const pull = (): Deferred<T, E> => {\n if (resolvedQueue.length > 0) {\n return resolvedQueue.shift();\n }\n const task = defer<T, E>();\n requestQueue.push(task);\n\n return task;\n };\n\n return {\n push,\n pull,\n done(value: T) {\n push(value);\n return Promise.all(\n [...pendingQueue, ...resolvedQueue, ...requestQueue].map(\n (d) => d.promise\n )\n );\n },\n get size() {\n return pendingQueue.length + resolvedQueue.length + requestQueue.length;\n },\n };\n};\n"],"names":["defer","createQueue","pendingQueue","resolvedQueue","requestQueue","push","value","task","Promise","resolve","then","catch","reject","finally","splice","indexOf","length","request","shift","promise","pull","done","all","map","d","size"],"mappings":"AAAA,SAASA,KAAK,QAA0B,aAAa;AAErD,OAAO,MAAMC,cAAc;IACzB,MAAMC,eAAiC,EAAE;IACzC,MAAMC,gBAAkC,EAAE;IAC1C,MAAMC,eAAiC,EAAE;IAEzC,MAAMC,OAAO,CAACC;QACZ,MAAMC,OAAOP;QACbE,aAAaG,IAAI,CAACE;QAElBC,QAAQC,OAAO,CAACH,OACbI,IAAI,CAACH,KAAKE,OAAO,EACjBE,KAAK,CAACJ,KAAKK,MAAM,EACjBC,OAAO,CAAC;YACPX,aAAaY,MAAM,CAACZ,aAAaa,OAAO,CAACR,OAAO;YAChD,IAAIH,aAAaY,MAAM,GAAG,GAAG;gBAC3B,MAAMC,UAAUb,aAAac,KAAK;gBAClCD,QAAQR,OAAO,CAACF,KAAKY,OAAO;YAC9B,OAAO;gBACLhB,cAAcE,IAAI,CAACE;YACrB;QACF;QAEF,OAAOA;IACT;IAEA,MAAMa,OAAO;QACX,IAAIjB,cAAca,MAAM,GAAG,GAAG;YAC5B,OAAOb,cAAce,KAAK;QAC5B;QACA,MAAMX,OAAOP;QACbI,aAAaC,IAAI,CAACE;QAElB,OAAOA;IACT;IAEA,OAAO;QACLF;QACAe;QACAC,MAAKf,KAAQ;YACXD,KAAKC;YACL,OAAOE,QAAQc,GAAG,CAChB;mBAAIpB;mBAAiBC;mBAAkBC;aAAa,CAACmB,GAAG,CACtD,CAACC,IAAMA,EAAEL,OAAO;QAGtB;QACA,IAAIM,QAAO;YACT,OAAOvB,aAAac,MAAM,GAAGb,cAAca,MAAM,GAAGZ,aAAaY,MAAM;QACzE;IACF;AACF,EAAE"} | ||
| {"version":3,"sources":["../src/queue.ts"],"sourcesContent":["import { defer, Deferred } from './defer.js';\n\nexport const createQueue = <T, E = Error>() => {\n const pendingQueue: Deferred<T, E>[] = [];\n const resolvedQueue: Deferred<T, E>[] = [];\n const requestQueue: Deferred<T, E>[] = [];\n\n const push = (value: T): Deferred<T, E> => {\n const task = defer<T, E>();\n pendingQueue.push(task);\n\n Promise.resolve(value)\n .then(task.resolve)\n .catch(task.reject)\n .finally(() => {\n pendingQueue.splice(pendingQueue.indexOf(task), 1);\n if (requestQueue.length > 0) {\n const request = requestQueue.shift();\n request.resolve(task.promise);\n } else {\n resolvedQueue.push(task);\n }\n });\n\n return task;\n };\n\n const pull = (): Deferred<T, E> => {\n if (resolvedQueue.length > 0) {\n return resolvedQueue.shift();\n }\n const task = defer<T, E>();\n requestQueue.push(task);\n\n return task;\n };\n\n return {\n push,\n pull,\n done(value: T) {\n push(value);\n return Promise.all(\n [...pendingQueue, ...resolvedQueue, ...requestQueue].map(\n (d) => d.promise,\n ),\n );\n },\n get size() {\n return pendingQueue.length + resolvedQueue.length + requestQueue.length;\n },\n };\n};\n"],"names":["defer","createQueue","pendingQueue","resolvedQueue","requestQueue","push","value","task","Promise","resolve","then","catch","reject","finally","splice","indexOf","length","request","shift","promise","pull","done","all","map","d","size"],"mappings":"AAAA,SAASA,KAAK,QAAkB,aAAa;AAE7C,OAAO,MAAMC,cAAc;IACzB,MAAMC,eAAiC,EAAE;IACzC,MAAMC,gBAAkC,EAAE;IAC1C,MAAMC,eAAiC,EAAE;IAEzC,MAAMC,OAAO,CAACC;QACZ,MAAMC,OAAOP;QACbE,aAAaG,IAAI,CAACE;QAElBC,QAAQC,OAAO,CAACH,OACbI,IAAI,CAACH,KAAKE,OAAO,EACjBE,KAAK,CAACJ,KAAKK,MAAM,EACjBC,OAAO,CAAC;YACPX,aAAaY,MAAM,CAACZ,aAAaa,OAAO,CAACR,OAAO;YAChD,IAAIH,aAAaY,MAAM,GAAG,GAAG;gBAC3B,MAAMC,UAAUb,aAAac,KAAK;gBAClCD,QAAQR,OAAO,CAACF,KAAKY,OAAO;YAC9B,OAAO;gBACLhB,cAAcE,IAAI,CAACE;YACrB;QACF;QAEF,OAAOA;IACT;IAEA,MAAMa,OAAO;QACX,IAAIjB,cAAca,MAAM,GAAG,GAAG;YAC5B,OAAOb,cAAce,KAAK;QAC5B;QACA,MAAMX,OAAOP;QACbI,aAAaC,IAAI,CAACE;QAElB,OAAOA;IACT;IAEA,OAAO;QACLF;QACAe;QACAC,MAAKf,KAAQ;YACXD,KAAKC;YACL,OAAOE,QAAQc,GAAG,CAChB;mBAAIpB;mBAAiBC;mBAAkBC;aAAa,CAACmB,GAAG,CACtD,CAACC,IAAMA,EAAEL,OAAO;QAGtB;QACA,IAAIM,QAAO;YACT,OAAOvB,aAAac,MAAM,GAAGb,cAAca,MAAM,GAAGZ,aAAaY,MAAM;QACzE;IACF;AACF,EAAE"} |
+5
-6
| { | ||
| "name": "asygen", | ||
| "description": "0-Deps, simple and fast async generator library for browser and NodeJS", | ||
| "version": "0.3.1", | ||
| "version": "0.3.2", | ||
| "type": "module", | ||
@@ -67,7 +67,7 @@ "types": "build/index.d.ts", | ||
| "@types/node": "^20.3.1", | ||
| "@typescript-eslint/eslint-plugin": "^5.59.11", | ||
| "@typescript-eslint/parser": "^5.59.11", | ||
| "@typescript-eslint/eslint-plugin": "^6.3.0", | ||
| "@typescript-eslint/parser": "^6.3.0", | ||
| "eslint": "^8.42.0", | ||
| "eslint-plugin-import": "^2.27.5", | ||
| "eslint-plugin-prettier": "^4.2.1", | ||
| "eslint-plugin-prettier": "^5.0.0", | ||
| "fast-glob": "^3.2.12", | ||
@@ -77,4 +77,3 @@ "husky": "^8.0.3", | ||
| "jest": "^29.5.0", | ||
| "prettier": "^2.8.8", | ||
| "pretty-quick": "^3.1.3", | ||
| "prettier": "^3.0.1", | ||
| "ts-jest": "^29.1.0", | ||
@@ -81,0 +80,0 @@ "typescript": "^5.1.3" |
+1
-1
@@ -11,3 +11,3 @@ import { createQueue } from './queue.js'; | ||
| } | ||
| }) | ||
| }), | ||
| ).then(async () => queue.done({ value: null, done: true })); | ||
@@ -14,0 +14,0 @@ |
@@ -17,3 +17,3 @@ import { createQueue } from './queue.js'; | ||
| await queue.push({ value, done: false }).promise; | ||
| }) | ||
| }), | ||
| ).then(async (value) => queue.done({ value, done: true })); | ||
@@ -20,0 +20,0 @@ |
+3
-3
@@ -1,2 +0,2 @@ | ||
| import { defer, Deferred, Status } from './defer.js'; | ||
| import { defer, Deferred } from './defer.js'; | ||
@@ -45,4 +45,4 @@ export const createQueue = <T, E = Error>() => { | ||
| [...pendingQueue, ...resolvedQueue, ...requestQueue].map( | ||
| (d) => d.promise | ||
| ) | ||
| (d) => d.promise, | ||
| ), | ||
| ); | ||
@@ -49,0 +49,0 @@ }, |
16
-5.88%40183
-0.11%