asygen 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/combine.cjs +2 -2
- package/build/combine.cjs.map +1 -1
- package/build/combine.js.map +1 -1
- package/build/defer.cjs.map +1 -1
- package/build/defer.js.map +1 -1
- package/build/deferredPoll.cjs +3 -3
- package/build/deferredPoll.cjs.map +1 -1
- package/build/deferredPoll.d.ts +1 -1
- package/build/deferredPoll.js.map +1 -1
- package/build/generatorify.cjs +2 -2
- package/build/generatorify.cjs.map +1 -1
- package/build/generatorify.js.map +1 -1
- package/build/index.cjs +13 -11
- package/build/index.cjs.map +1 -1
- package/build/index.d.ts +4 -4
- package/build/index.js.map +1 -1
- package/package.json +14 -3
- package/src/combine.ts +9 -7
- package/src/defer.ts +4 -4
- package/src/deferredPoll.ts +4 -4
- package/src/generatorify.ts +8 -6
- package/src/index.ts +4 -4
package/build/combine.cjs
CHANGED
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "combine", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>combine
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _deferredPollcjs = require("./deferredPoll.cjs");
|
|
10
10
|
const combine = (...iterables)=>{
|
|
11
|
-
const poll = (0,
|
|
11
|
+
const poll = (0, _deferredPollcjs.createPoll)();
|
|
12
12
|
Promise.all(iterables.map(async (iterable)=>{
|
|
13
13
|
for await (const value of iterable){
|
|
14
14
|
await poll.push({
|
package/build/combine.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createPoll } from './deferredPoll';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const poll = createPoll<IteratorResult<T, R>>();\n\n Promise.all(iterables.map(async (iterable) => {\n
|
|
1
|
+
{"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createPoll } from './deferredPoll.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const poll = createPoll<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await poll.push({ value, done: false }).promise;\n }\n })\n ).then(async () => poll.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return poll.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["combine","iterables","poll","createPoll","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAEaA;;aAAAA;;iCAFc;AAEpB,MAAMA,UAAU,CAAiB,GAAGC,YAAkC;IAC3E,MAAMC,OAAOC,IAAAA,2BAAU;IAEvBC,QAAQC,GAAG,CACTJ,UAAUK,GAAG,CAAC,OAAOC,WAAa;QAChC,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAML,KAAKO,IAAI,CAAC;gBAAED;gBAAOE,MAAM,KAAK;YAAC,GAAGC,OAAO;QACjD;IACF,IACAC,IAAI,CAAC,UAAYV,KAAKQ,IAAI,CAAC;YAAEF,OAAO,IAAI;YAAEE,MAAM,IAAI;QAAC;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC,IAAG;YACvB,OAAO;gBACLC,QAAO;oBACL,OAAOb,KAAKc,IAAI,GAAGL,OAAO;gBAC5B;YACF;QACF;IACF;AACF"}
|
package/build/combine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createPoll } from './deferredPoll';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const poll = createPoll<IteratorResult<T, R>>();\n\n Promise.all(iterables.map(async (iterable) => {\n
|
|
1
|
+
{"version":3,"sources":["../src/combine.ts"],"sourcesContent":["import { createPoll } from './deferredPoll.js';\n\nexport const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {\n const poll = createPoll<IteratorResult<T, R>>();\n\n Promise.all(\n iterables.map(async (iterable) => {\n for await (const value of iterable) {\n await poll.push({ value, done: false }).promise;\n }\n })\n ).then(async () => poll.done({ value: null, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return poll.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createPoll","combine","iterables","poll","Promise","all","map","iterable","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,UAAU,QAAQ,oBAAoB;AAE/C,OAAO,MAAMC,UAAU,CAAiB,GAAGC,YAAkC;IAC3E,MAAMC,OAAOH;IAEbI,QAAQC,GAAG,CACTH,UAAUI,GAAG,CAAC,OAAOC,WAAa;QAChC,WAAW,MAAMC,SAASD,SAAU;YAClC,MAAMJ,KAAKM,IAAI,CAAC;gBAAED;gBAAOE,MAAM,KAAK;YAAC,GAAGC,OAAO;QACjD;IACF,IACAC,IAAI,CAAC,UAAYT,KAAKO,IAAI,CAAC;YAAEF,OAAO,IAAI;YAAEE,MAAM,IAAI;QAAC;IAEvD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC,IAAG;YACvB,OAAO;gBACLC,QAAO;oBACL,OAAOZ,KAAKa,IAAI,GAAGL,OAAO;gBAC5B;YACF;QACF;IACF;AACF,EAAE"}
|
package/build/defer.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defer.ts"],"sourcesContent":["export enum Status {\n PENDING = 'pending',\n RESOLVED = 'resolved',\n REJECTED = 'rejected',\n}\n\nconst counter: [number, number] = [0,0];\nexport const getId = () => {\n const result = Date.now() * 100;\n if (counter[0] !== result) {\n counter[0] = result;\n counter[1] = 0;\n }
|
|
1
|
+
{"version":3,"sources":["../src/defer.ts"],"sourcesContent":["export enum Status {\n PENDING = 'pending',\n RESOLVED = 'resolved',\n REJECTED = 'rejected',\n}\n\nconst counter: [number, number] = [0, 0];\nexport const getId = () => {\n const result = Date.now() * 100;\n if (counter[0] !== result) {\n counter[0] = result;\n counter[1] = 0;\n }\n return (counter[0] + counter[1]++).toString(16);\n};\n\nexport class Deferred<T = void, E = unknown> {\n private txts = getId();\n private _promise: Promise<T>;\n private _resolve?: (value: T) => void;\n private _reject?: (error: E) => void;\n private _status: Status = Status.PENDING;\n\n constructor() {\n this._promise = new Promise<T>((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.resolve = this.resolve.bind(this);\n this.reject = this.reject.bind(this);\n }\n\n get [Symbol.toStringTag]() {\n return `Deferred ${this.txts} ${this._status}`;\n }\n\n get promise() {\n return this._promise;\n }\n\n get status() {\n return this._status;\n }\n\n resolve(value: T) {\n if (this._status === Status.PENDING) {\n this._status = Status.RESOLVED;\n this._resolve(value);\n }\n\n return this;\n }\n\n reject(error: E) {\n if (this._status === Status.PENDING) {\n this._status = Status.REJECTED;\n this._reject(error);\n }\n return this;\n }\n}\n\nexport const defer = <T = void, E = unknown>() => {\n return new Deferred<T, E>();\n};\n"],"names":["getId","Deferred","defer","Status","PENDING","RESOLVED","REJECTED","counter","result","Date","now","toString","txts","_promise","_resolve","_reject","_status","constructor","Promise","resolve","reject","bind","Symbol","toStringTag","promise","status","value","error"],"mappings":";;;;;;;;;;;;IAOaA,KAAK,MAALA;IASAC,QAAQ,MAARA;IA8CAC,KAAK,MAALA;;IA9DN;UAAKC,MAAM;IAANA,OACVC,aAAU;IADAD,OAEVE,cAAW;IAFDF,OAGVG,cAAW;GAHDH,WAAAA;AAMZ,MAAMI,UAA4B;IAAC;IAAG;CAAE;AACjC,MAAMP,QAAQ,IAAM;IACzB,MAAMQ,SAASC,KAAKC,GAAG,KAAK;IAC5B,IAAIH,OAAO,CAAC,EAAE,KAAKC,QAAQ;QACzBD,OAAO,CAAC,EAAE,GAAGC;QACbD,OAAO,CAAC,EAAE,GAAG;IACf,CAAC;IACD,OAAO,AAACA,CAAAA,OAAO,CAAC,EAAE,GAAGA,OAAO,CAAC,EAAE,EAAC,EAAGI,QAAQ,CAAC;AAC9C;AAEO,MAAMV;IACHW,OAAOZ,QAAQ;IACfa,SAAqB;IACrBC,SAA8B;IAC9BC,QAA6B;IAC7BC,UAAkBb,OAAOC,OAAO,CAAC;IAEzCa,aAAc;QACZ,IAAI,CAACJ,QAAQ,GAAG,IAAIK,QAAW,CAACC,SAASC,SAAW;YAClD,IAAI,CAACN,QAAQ,GAAGK;YAChB,IAAI,CAACJ,OAAO,GAAGK;QACjB;QACA,IAAI,CAACD,OAAO,GAAG,IAAI,CAACA,OAAO,CAACE,IAAI,CAAC,IAAI;QACrC,IAAI,CAACD,MAAM,GAAG,IAAI,CAACA,MAAM,CAACC,IAAI,CAAC,IAAI;IACrC;IAEA,IAAI,CAACC,OAAOC,WAAW,CAAC,GAAG;QACzB,OAAO,CAAC,SAAS,EAAE,IAAI,CAACX,IAAI,CAAC,CAAC,EAAE,IAAI,CAACI,OAAO,CAAC,CAAC;IAChD;IAEA,IAAIQ,UAAU;QACZ,OAAO,IAAI,CAACX,QAAQ;IACtB;IAEA,IAAIY,SAAS;QACX,OAAO,IAAI,CAACT,OAAO;IACrB;IAEAG,QAAQO,KAAQ,EAAE;QAChB,IAAI,IAAI,CAACV,OAAO,KAAKb,OAAOC,OAAO,EAAE;YACnC,IAAI,CAACY,OAAO,GAAGb,OAAOE,QAAQ;YAC9B,IAAI,CAACS,QAAQ,CAACY;QAChB,CAAC;QAED,OAAO,IAAI;IACb;IAEAN,OAAOO,KAAQ,EAAE;QACf,IAAI,IAAI,CAACX,OAAO,KAAKb,OAAOC,OAAO,EAAE;YACnC,IAAI,CAACY,OAAO,GAAGb,OAAOG,QAAQ;YAC9B,IAAI,CAACS,OAAO,CAACY;QACf,CAAC;QACD,OAAO,IAAI;IACb;AACF;AAEO,MAAMzB,QAAQ,IAA6B;IAChD,OAAO,IAAID;AACb"}
|
package/build/defer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/defer.ts"],"sourcesContent":["export enum Status {\n PENDING = 'pending',\n RESOLVED = 'resolved',\n REJECTED = 'rejected',\n}\n\nconst counter: [number, number] = [0,0];\nexport const getId = () => {\n const result = Date.now() * 100;\n if (counter[0] !== result) {\n counter[0] = result;\n counter[1] = 0;\n }
|
|
1
|
+
{"version":3,"sources":["../src/defer.ts"],"sourcesContent":["export enum Status {\n PENDING = 'pending',\n RESOLVED = 'resolved',\n REJECTED = 'rejected',\n}\n\nconst counter: [number, number] = [0, 0];\nexport const getId = () => {\n const result = Date.now() * 100;\n if (counter[0] !== result) {\n counter[0] = result;\n counter[1] = 0;\n }\n return (counter[0] + counter[1]++).toString(16);\n};\n\nexport class Deferred<T = void, E = unknown> {\n private txts = getId();\n private _promise: Promise<T>;\n private _resolve?: (value: T) => void;\n private _reject?: (error: E) => void;\n private _status: Status = Status.PENDING;\n\n constructor() {\n this._promise = new Promise<T>((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.resolve = this.resolve.bind(this);\n this.reject = this.reject.bind(this);\n }\n\n get [Symbol.toStringTag]() {\n return `Deferred ${this.txts} ${this._status}`;\n }\n\n get promise() {\n return this._promise;\n }\n\n get status() {\n return this._status;\n }\n\n resolve(value: T) {\n if (this._status === Status.PENDING) {\n this._status = Status.RESOLVED;\n this._resolve(value);\n }\n\n return this;\n }\n\n reject(error: E) {\n if (this._status === Status.PENDING) {\n this._status = Status.REJECTED;\n this._reject(error);\n }\n return this;\n }\n}\n\nexport const defer = <T = void, E = unknown>() => {\n return new Deferred<T, E>();\n};\n"],"names":["Status","PENDING","RESOLVED","REJECTED","counter","getId","result","Date","now","toString","Deferred","txts","_promise","_resolve","_reject","_status","constructor","Promise","resolve","reject","bind","Symbol","toStringTag","promise","status","value","error","defer"],"mappings":"WAAO;UAAKA,MAAM;IAANA,OACVC,aAAU;IADAD,OAEVE,cAAW;IAFDF,OAGVG,cAAW;GAHDH,WAAAA;AAMZ,MAAMI,UAA4B;IAAC;IAAG;CAAE;AACxC,OAAO,MAAMC,QAAQ,IAAM;IACzB,MAAMC,SAASC,KAAKC,GAAG,KAAK;IAC5B,IAAIJ,OAAO,CAAC,EAAE,KAAKE,QAAQ;QACzBF,OAAO,CAAC,EAAE,GAAGE;QACbF,OAAO,CAAC,EAAE,GAAG;IACf,CAAC;IACD,OAAO,AAACA,CAAAA,OAAO,CAAC,EAAE,GAAGA,OAAO,CAAC,EAAE,EAAC,EAAGK,QAAQ,CAAC;AAC9C,EAAE;AAEF,OAAO,MAAMC;IACHC,OAAON,QAAQ;IACfO,SAAqB;IACrBC,SAA8B;IAC9BC,QAA6B;IAC7BC,UAAkBf,OAAOC,OAAO,CAAC;IAEzCe,aAAc;QACZ,IAAI,CAACJ,QAAQ,GAAG,IAAIK,QAAW,CAACC,SAASC,SAAW;YAClD,IAAI,CAACN,QAAQ,GAAGK;YAChB,IAAI,CAACJ,OAAO,GAAGK;QACjB;QACA,IAAI,CAACD,OAAO,GAAG,IAAI,CAACA,OAAO,CAACE,IAAI,CAAC,IAAI;QACrC,IAAI,CAACD,MAAM,GAAG,IAAI,CAACA,MAAM,CAACC,IAAI,CAAC,IAAI;IACrC;IAEA,IAAI,CAACC,OAAOC,WAAW,CAAC,GAAG;QACzB,OAAO,CAAC,SAAS,EAAE,IAAI,CAACX,IAAI,CAAC,CAAC,EAAE,IAAI,CAACI,OAAO,CAAC,CAAC;IAChD;IAEA,IAAIQ,UAAU;QACZ,OAAO,IAAI,CAACX,QAAQ;IACtB;IAEA,IAAIY,SAAS;QACX,OAAO,IAAI,CAACT,OAAO;IACrB;IAEAG,QAAQO,KAAQ,EAAE;QAChB,IAAI,IAAI,CAACV,OAAO,KAAKf,OAAOC,OAAO,EAAE;YACnC,IAAI,CAACc,OAAO,GAAGf,OAAOE,QAAQ;YAC9B,IAAI,CAACW,QAAQ,CAACY;QAChB,CAAC;QAED,OAAO,IAAI;IACb;IAEAN,OAAOO,KAAQ,EAAE;QACf,IAAI,IAAI,CAACX,OAAO,KAAKf,OAAOC,OAAO,EAAE;YACnC,IAAI,CAACc,OAAO,GAAGf,OAAOG,QAAQ;YAC9B,IAAI,CAACW,OAAO,CAACY;QACf,CAAC;QACD,OAAO,IAAI;IACb;AACF,CAAC;AAED,OAAO,MAAMC,QAAQ,IAA6B;IAChD,OAAO,IAAIjB;AACb,EAAE"}
|
package/build/deferredPoll.cjs
CHANGED
|
@@ -6,14 +6,14 @@ Object.defineProperty(exports, "createPoll", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>createPoll
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _defercjs = require("./defer.cjs");
|
|
10
10
|
const createPoll = ()=>{
|
|
11
11
|
const dPoll = [
|
|
12
|
-
(0,
|
|
12
|
+
(0, _defercjs.defer)()
|
|
13
13
|
];
|
|
14
14
|
return {
|
|
15
15
|
push (value) {
|
|
16
|
-
const next = (0,
|
|
16
|
+
const next = (0, _defercjs.defer)();
|
|
17
17
|
const prev = dPoll.push(next) - 2;
|
|
18
18
|
const prevDeferred = dPoll[prev];
|
|
19
19
|
prevDeferred.resolve(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deferredPoll.ts"],"sourcesContent":["import { defer, Deferred } from './defer';\n\nexport const createPoll = <T>() => {\n const dPoll: Deferred<T>[] = [defer<T>()];\n\n return {\n push(value: T) {\n const next = defer<T>();\n const prev = dPoll.push(next) - 2;\n const prevDeferred = dPoll[prev] as Deferred<T>;\n prevDeferred.resolve(value);\n\n return prevDeferred;\n },\n pull() {\n const current = dPoll[0];\n current.promise.then(() => dPoll.shift());\n return current;\n },\n done(value: T) {\n dPoll[dPoll.length - 1].resolve(value);\n return Promise.all(dPoll.map(d => d.promise));\n }
|
|
1
|
+
{"version":3,"sources":["../src/deferredPoll.ts"],"sourcesContent":["import { defer, Deferred } from './defer.js';\n\nexport const createPoll = <T>() => {\n const dPoll: Deferred<T>[] = [defer<T>()];\n\n return {\n push(value: T) {\n const next = defer<T>();\n const prev = dPoll.push(next) - 2;\n const prevDeferred = dPoll[prev] as Deferred<T>;\n prevDeferred.resolve(value);\n\n return prevDeferred;\n },\n pull() {\n const current = dPoll[0];\n current.promise.then(() => dPoll.shift());\n return current;\n },\n done(value: T) {\n dPoll[dPoll.length - 1].resolve(value);\n return Promise.all(dPoll.map((d) => d.promise));\n },\n };\n};\n"],"names":["createPoll","dPoll","defer","push","value","next","prev","prevDeferred","resolve","pull","current","promise","then","shift","done","length","Promise","all","map","d"],"mappings":";;;;+BAEaA;;aAAAA;;0BAFmB;AAEzB,MAAMA,aAAa,IAAS;IACjC,MAAMC,QAAuB;QAACC,IAAAA,eAAK;KAAM;IAEzC,OAAO;QACLC,MAAKC,KAAQ,EAAE;YACb,MAAMC,OAAOH,IAAAA,eAAK;YAClB,MAAMI,OAAOL,MAAME,IAAI,CAACE,QAAQ;YAChC,MAAME,eAAeN,KAAK,CAACK,KAAK;YAChCC,aAAaC,OAAO,CAACJ;YAErB,OAAOG;QACT;QACAE,QAAO;YACL,MAAMC,UAAUT,KAAK,CAAC,EAAE;YACxBS,QAAQC,OAAO,CAACC,IAAI,CAAC,IAAMX,MAAMY,KAAK;YACtC,OAAOH;QACT;QACAI,MAAKV,KAAQ,EAAE;YACbH,KAAK,CAACA,MAAMc,MAAM,GAAG,EAAE,CAACP,OAAO,CAACJ;YAChC,OAAOY,QAAQC,GAAG,CAAChB,MAAMiB,GAAG,CAAC,CAACC,IAAMA,EAAER,OAAO;QAC/C;IACF;AACF"}
|
package/build/deferredPoll.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/deferredPoll.ts"],"sourcesContent":["import { defer, Deferred } from './defer';\n\nexport const createPoll = <T>() => {\n const dPoll: Deferred<T>[] = [defer<T>()];\n\n return {\n push(value: T) {\n const next = defer<T>();\n const prev = dPoll.push(next) - 2;\n const prevDeferred = dPoll[prev] as Deferred<T>;\n prevDeferred.resolve(value);\n\n return prevDeferred;\n },\n pull() {\n const current = dPoll[0];\n current.promise.then(() => dPoll.shift());\n return current;\n },\n done(value: T) {\n dPoll[dPoll.length - 1].resolve(value);\n return Promise.all(dPoll.map(d => d.promise));\n }
|
|
1
|
+
{"version":3,"sources":["../src/deferredPoll.ts"],"sourcesContent":["import { defer, Deferred } from './defer.js';\n\nexport const createPoll = <T>() => {\n const dPoll: Deferred<T>[] = [defer<T>()];\n\n return {\n push(value: T) {\n const next = defer<T>();\n const prev = dPoll.push(next) - 2;\n const prevDeferred = dPoll[prev] as Deferred<T>;\n prevDeferred.resolve(value);\n\n return prevDeferred;\n },\n pull() {\n const current = dPoll[0];\n current.promise.then(() => dPoll.shift());\n return current;\n },\n done(value: T) {\n dPoll[dPoll.length - 1].resolve(value);\n return Promise.all(dPoll.map((d) => d.promise));\n },\n };\n};\n"],"names":["defer","createPoll","dPoll","push","value","next","prev","prevDeferred","resolve","pull","current","promise","then","shift","done","length","Promise","all","map","d"],"mappings":"AAAA,SAASA,KAAK,QAAkB,aAAa;AAE7C,OAAO,MAAMC,aAAa,IAAS;IACjC,MAAMC,QAAuB;QAACF;KAAW;IAEzC,OAAO;QACLG,MAAKC,KAAQ,EAAE;YACb,MAAMC,OAAOL;YACb,MAAMM,OAAOJ,MAAMC,IAAI,CAACE,QAAQ;YAChC,MAAME,eAAeL,KAAK,CAACI,KAAK;YAChCC,aAAaC,OAAO,CAACJ;YAErB,OAAOG;QACT;QACAE,QAAO;YACL,MAAMC,UAAUR,KAAK,CAAC,EAAE;YACxBQ,QAAQC,OAAO,CAACC,IAAI,CAAC,IAAMV,MAAMW,KAAK;YACtC,OAAOH;QACT;QACAI,MAAKV,KAAQ,EAAE;YACbF,KAAK,CAACA,MAAMa,MAAM,GAAG,EAAE,CAACP,OAAO,CAACJ;YAChC,OAAOY,QAAQC,GAAG,CAACf,MAAMgB,GAAG,CAAC,CAACC,IAAMA,EAAER,OAAO;QAC/C;IACF;AACF,EAAE"}
|
package/build/generatorify.cjs
CHANGED
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "generatorify", {
|
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: ()=>generatorify
|
|
8
8
|
});
|
|
9
|
-
const
|
|
9
|
+
const _deferredPollcjs = require("./deferredPoll.cjs");
|
|
10
10
|
const generatorify = (task)=>{
|
|
11
|
-
const poll = (0,
|
|
11
|
+
const poll = (0, _deferredPollcjs.createPoll)();
|
|
12
12
|
Promise.resolve(task(async (value)=>{
|
|
13
13
|
await poll.push({
|
|
14
14
|
value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createPoll } from './deferredPoll';\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 poll = createPoll<IteratorResult<T, R>>();\n\n Promise.resolve(task(async value => {\n
|
|
1
|
+
{"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createPoll } from './deferredPoll.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 poll = createPoll<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await poll.push({ value, done: false }).promise;\n })\n ).then(async (value) => poll.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return poll.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["generatorify","task","poll","createPoll","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":";;;;+BAUaA;;aAAAA;;iCAVc;AAUpB,MAAMA,eAAe,CAAOC,OAAuC;IACxE,MAAMC,OAAOC,IAAAA,2BAAU;IAEvBC,QAAQC,OAAO,CACbJ,KAAK,OAAOK,QAAU;QACpB,MAAMJ,KAAKK,IAAI,CAAC;YAAED;YAAOE,MAAM,KAAK;QAAC,GAAGC,OAAO;IACjD,IACAC,IAAI,CAAC,OAAOJ,QAAUJ,KAAKM,IAAI,CAAC;YAAEF;YAAOE,MAAM,IAAI;QAAC;IAEtD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC,IAAG;YACvB,OAAO;gBACLC,QAAO;oBACL,OAAOX,KAAKY,IAAI,GAAGL,OAAO;gBAC5B;YACF;QACF;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createPoll } from './deferredPoll';\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 poll = createPoll<IteratorResult<T, R>>();\n\n Promise.resolve(task(async value => {\n
|
|
1
|
+
{"version":3,"sources":["../src/generatorify.ts"],"sourcesContent":["import { createPoll } from './deferredPoll.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 poll = createPoll<IteratorResult<T, R>>();\n\n Promise.resolve(\n task(async (value) => {\n await poll.push({ value, done: false }).promise;\n })\n ).then(async (value) => poll.done({ value, done: true }));\n\n return {\n [Symbol.asyncIterator]() {\n return {\n next() {\n return poll.pull().promise;\n },\n };\n },\n };\n};\n"],"names":["createPoll","generatorify","task","poll","Promise","resolve","value","push","done","promise","then","Symbol","asyncIterator","next","pull"],"mappings":"AAAA,SAASA,UAAU,QAAQ,oBAAoB;AAU/C,OAAO,MAAMC,eAAe,CAAOC,OAAuC;IACxE,MAAMC,OAAOH;IAEbI,QAAQC,OAAO,CACbH,KAAK,OAAOI,QAAU;QACpB,MAAMH,KAAKI,IAAI,CAAC;YAAED;YAAOE,MAAM,KAAK;QAAC,GAAGC,OAAO;IACjD,IACAC,IAAI,CAAC,OAAOJ,QAAUH,KAAKK,IAAI,CAAC;YAAEF;YAAOE,MAAM,IAAI;QAAC;IAEtD,OAAO;QACL,CAACG,OAAOC,aAAa,CAAC,IAAG;YACvB,OAAO;gBACLC,QAAO;oBACL,OAAOV,KAAKW,IAAI,GAAGL,OAAO;gBAC5B;YACF;QACF;IACF;AACF,EAAE"}
|
package/build/index.cjs
CHANGED
|
@@ -2,18 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function
|
|
5
|
+
_export_star(require("./defer.cjs"), exports);
|
|
6
|
+
_export_star(require("./generatorify.cjs"), exports);
|
|
7
|
+
_export_star(require("./deferredPoll.cjs"), exports);
|
|
8
|
+
_export_star(require("./combine.cjs"), exports);
|
|
9
|
+
function _export_star(from, to) {
|
|
10
10
|
Object.keys(from).forEach(function(k) {
|
|
11
|
-
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
12
|
+
Object.defineProperty(to, k, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function() {
|
|
15
|
+
return from[k];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
17
19
|
});
|
|
18
20
|
return from;
|
|
19
21
|
}
|
package/build/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './defer';\nexport * from './generatorify';\nexport * from './deferredPoll';\nexport * from './combine';\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './defer.js';\nexport * from './generatorify.js';\nexport * from './deferredPoll.js';\nexport * from './combine.js';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './defer';
|
|
2
|
-
export * from './generatorify';
|
|
3
|
-
export * from './deferredPoll';
|
|
4
|
-
export * from './combine';
|
|
1
|
+
export * from './defer.js';
|
|
2
|
+
export * from './generatorify.js';
|
|
3
|
+
export * from './deferredPoll.js';
|
|
4
|
+
export * from './combine.js';
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './defer';\nexport * from './generatorify';\nexport * from './deferredPoll';\nexport * from './combine';\n"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './defer.js';\nexport * from './generatorify.js';\nexport * from './deferredPoll.js';\nexport * from './combine.js';\n"],"names":[],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,eAAe"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "asygen",
|
|
3
3
|
"description": "0-Deps, simple and fast async generator library for browser and NodeJS",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.2",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
7
7
|
"main": "build/index.cjs",
|
|
@@ -21,7 +21,9 @@
|
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "rm -rf build && inop src build -p -i __tests__ && tsc --declaration --emitDeclarationOnly",
|
|
23
23
|
"test": "jest",
|
|
24
|
-
"test:build": "node src/__tests__/index.cjs && node src/__tests__/index.mjs"
|
|
24
|
+
"test:build": "node src/__tests__/index.cjs && node src/__tests__/index.mjs",
|
|
25
|
+
"lint": "eslint .",
|
|
26
|
+
"prepare": "husky install"
|
|
25
27
|
},
|
|
26
28
|
"engines": {
|
|
27
29
|
"node": ">=16"
|
|
@@ -59,9 +61,18 @@
|
|
|
59
61
|
"@swc/jest": "^0.2.24",
|
|
60
62
|
"@types/jest": "^29.5.0",
|
|
61
63
|
"@types/node": "^18.15.11",
|
|
64
|
+
"@typescript-eslint/eslint-plugin": "^5.58.0",
|
|
65
|
+
"@typescript-eslint/parser": "^5.58.0",
|
|
66
|
+
"eslint": "^8.38.0",
|
|
67
|
+
"eslint-plugin-import": "^2.27.5",
|
|
68
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
62
69
|
"fast-glob": "^3.2.12",
|
|
63
|
-
"
|
|
70
|
+
"husky": "^8.0.3",
|
|
71
|
+
"inop": "^0.2.5",
|
|
64
72
|
"jest": "^29.5.0",
|
|
73
|
+
"prettier": "^2.8.7",
|
|
74
|
+
"pretty-quick": "^3.1.3",
|
|
75
|
+
"ts-jest": "^29.1.0",
|
|
65
76
|
"typescript": "^5.0.4"
|
|
66
77
|
}
|
|
67
78
|
}
|
package/src/combine.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { createPoll } from './deferredPoll';
|
|
1
|
+
import { createPoll } from './deferredPoll.js';
|
|
2
2
|
|
|
3
3
|
export const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {
|
|
4
4
|
const poll = createPoll<IteratorResult<T, R>>();
|
|
5
5
|
|
|
6
|
-
Promise.all(
|
|
7
|
-
|
|
8
|
-
await
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
Promise.all(
|
|
7
|
+
iterables.map(async (iterable) => {
|
|
8
|
+
for await (const value of iterable) {
|
|
9
|
+
await poll.push({ value, done: false }).promise;
|
|
10
|
+
}
|
|
11
|
+
})
|
|
12
|
+
).then(async () => poll.done({ value: null, done: true }));
|
|
11
13
|
|
|
12
14
|
return {
|
|
13
15
|
[Symbol.asyncIterator]() {
|
|
@@ -16,6 +18,6 @@ export const combine = <T, R = unknown>(...iterables: AsyncIterable<T>[]) => {
|
|
|
16
18
|
return poll.pull().promise;
|
|
17
19
|
},
|
|
18
20
|
};
|
|
19
|
-
}
|
|
21
|
+
},
|
|
20
22
|
};
|
|
21
23
|
};
|
package/src/defer.ts
CHANGED
|
@@ -4,14 +4,14 @@ export enum Status {
|
|
|
4
4
|
REJECTED = 'rejected',
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
const counter: [number, number] = [0,0];
|
|
7
|
+
const counter: [number, number] = [0, 0];
|
|
8
8
|
export const getId = () => {
|
|
9
9
|
const result = Date.now() * 100;
|
|
10
10
|
if (counter[0] !== result) {
|
|
11
11
|
counter[0] = result;
|
|
12
12
|
counter[1] = 0;
|
|
13
|
-
}
|
|
14
|
-
return (counter[0] +
|
|
13
|
+
}
|
|
14
|
+
return (counter[0] + counter[1]++).toString(16);
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
export class Deferred<T = void, E = unknown> {
|
|
@@ -62,4 +62,4 @@ export class Deferred<T = void, E = unknown> {
|
|
|
62
62
|
|
|
63
63
|
export const defer = <T = void, E = unknown>() => {
|
|
64
64
|
return new Deferred<T, E>();
|
|
65
|
-
}
|
|
65
|
+
};
|
package/src/deferredPoll.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defer, Deferred } from './defer';
|
|
1
|
+
import { defer, Deferred } from './defer.js';
|
|
2
2
|
|
|
3
3
|
export const createPoll = <T>() => {
|
|
4
4
|
const dPoll: Deferred<T>[] = [defer<T>()];
|
|
@@ -19,7 +19,7 @@ export const createPoll = <T>() => {
|
|
|
19
19
|
},
|
|
20
20
|
done(value: T) {
|
|
21
21
|
dPoll[dPoll.length - 1].resolve(value);
|
|
22
|
-
return Promise.all(dPoll.map(d => d.promise));
|
|
23
|
-
}
|
|
22
|
+
return Promise.all(dPoll.map((d) => d.promise));
|
|
23
|
+
},
|
|
24
24
|
};
|
|
25
|
-
}
|
|
25
|
+
};
|
package/src/generatorify.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createPoll } from './deferredPoll';
|
|
1
|
+
import { createPoll } from './deferredPoll.js';
|
|
2
2
|
|
|
3
3
|
export interface TaskCallback<T> {
|
|
4
4
|
(value: T): Promise<void>;
|
|
@@ -11,9 +11,11 @@ export interface Task<T, R = unknown> {
|
|
|
11
11
|
export const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {
|
|
12
12
|
const poll = createPoll<IteratorResult<T, R>>();
|
|
13
13
|
|
|
14
|
-
Promise.resolve(
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
Promise.resolve(
|
|
15
|
+
task(async (value) => {
|
|
16
|
+
await poll.push({ value, done: false }).promise;
|
|
17
|
+
})
|
|
18
|
+
).then(async (value) => poll.done({ value, done: true }));
|
|
17
19
|
|
|
18
20
|
return {
|
|
19
21
|
[Symbol.asyncIterator]() {
|
|
@@ -22,6 +24,6 @@ export const generatorify = <T, R>(task: Task<T, R>): AsyncIterable<T> => {
|
|
|
22
24
|
return poll.pull().promise;
|
|
23
25
|
},
|
|
24
26
|
};
|
|
25
|
-
}
|
|
27
|
+
},
|
|
26
28
|
};
|
|
27
|
-
}
|
|
29
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export * from './defer';
|
|
2
|
-
export * from './generatorify';
|
|
3
|
-
export * from './deferredPoll';
|
|
4
|
-
export * from './combine';
|
|
1
|
+
export * from './defer.js';
|
|
2
|
+
export * from './generatorify.js';
|
|
3
|
+
export * from './deferredPoll.js';
|
|
4
|
+
export * from './combine.js';
|