iter-fest 0.1.1-main.22b897b → 0.1.1-main.2a21293

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.
Files changed (71) hide show
  1. package/README.md +134 -35
  2. package/dist/chunk-2DE3J4J7.mjs +35 -0
  3. package/dist/chunk-2DE3J4J7.mjs.map +1 -0
  4. package/dist/chunk-ANRVAYLW.mjs +35 -0
  5. package/dist/chunk-ANRVAYLW.mjs.map +1 -0
  6. package/dist/chunk-EIIP7YWB.mjs +27 -0
  7. package/dist/chunk-EIIP7YWB.mjs.map +1 -0
  8. package/dist/{chunk-2HLJODU3.mjs → chunk-EUVK4YM7.mjs} +8 -4
  9. package/dist/chunk-EUVK4YM7.mjs.map +1 -0
  10. package/dist/chunk-MOBXUTO5.mjs +22 -0
  11. package/dist/chunk-MOBXUTO5.mjs.map +1 -0
  12. package/dist/{chunk-K5XV4W7G.mjs → chunk-O5SQJUKB.mjs} +6 -4
  13. package/dist/chunk-O5SQJUKB.mjs.map +1 -0
  14. package/dist/chunk-P4OSZLEH.mjs +15 -0
  15. package/dist/chunk-P4OSZLEH.mjs.map +1 -0
  16. package/dist/iter-fest.asyncGeneratorWithLastValue.d.mts +6 -0
  17. package/dist/iter-fest.asyncGeneratorWithLastValue.d.ts +6 -0
  18. package/dist/iter-fest.asyncGeneratorWithLastValue.js +59 -0
  19. package/dist/iter-fest.asyncGeneratorWithLastValue.js.map +1 -0
  20. package/dist/iter-fest.asyncGeneratorWithLastValue.mjs +7 -0
  21. package/dist/iter-fest.asyncIteratorToAsyncIterable.d.mts +3 -0
  22. package/dist/iter-fest.asyncIteratorToAsyncIterable.d.ts +3 -0
  23. package/dist/iter-fest.asyncIteratorToAsyncIterable.js +39 -0
  24. package/dist/iter-fest.asyncIteratorToAsyncIterable.js.map +1 -0
  25. package/dist/iter-fest.asyncIteratorToAsyncIterable.mjs +7 -0
  26. package/dist/iter-fest.d.mts +6 -2
  27. package/dist/iter-fest.d.ts +6 -2
  28. package/dist/iter-fest.generatorWithLastValue.d.mts +6 -0
  29. package/dist/iter-fest.generatorWithLastValue.d.ts +6 -0
  30. package/dist/iter-fest.generatorWithLastValue.js +59 -0
  31. package/dist/iter-fest.generatorWithLastValue.js.map +1 -0
  32. package/dist/iter-fest.generatorWithLastValue.mjs +7 -0
  33. package/dist/iter-fest.generatorWithLastValue.mjs.map +1 -0
  34. package/dist/iter-fest.iterableGetReadable.d.mts +3 -0
  35. package/dist/iter-fest.iterableGetReadable.d.ts +3 -0
  36. package/dist/iter-fest.iterableGetReadable.js +46 -0
  37. package/dist/iter-fest.iterableGetReadable.js.map +1 -0
  38. package/dist/iter-fest.iterableGetReadable.mjs +7 -0
  39. package/dist/iter-fest.iterableGetReadable.mjs.map +1 -0
  40. package/dist/iter-fest.js +127 -55
  41. package/dist/iter-fest.js.map +1 -1
  42. package/dist/iter-fest.mjs +53 -38
  43. package/dist/{iter-fest.observableValues.d.mts → iter-fest.observableSubscribeAsReadable.d.mts} +2 -2
  44. package/dist/{iter-fest.observableValues.d.ts → iter-fest.observableSubscribeAsReadable.d.ts} +2 -2
  45. package/dist/iter-fest.observableSubscribeAsReadable.js +51 -0
  46. package/dist/iter-fest.observableSubscribeAsReadable.js.map +1 -0
  47. package/dist/iter-fest.observableSubscribeAsReadable.mjs +7 -0
  48. package/dist/iter-fest.observableSubscribeAsReadable.mjs.map +1 -0
  49. package/dist/iter-fest.pushAsyncIterableIterator.mjs +1 -2
  50. package/dist/iter-fest.readerValues.d.mts +3 -0
  51. package/dist/iter-fest.readerValues.d.ts +3 -0
  52. package/dist/{iter-fest.readerToAsyncIterableIterator.js → iter-fest.readerValues.js} +12 -8
  53. package/dist/iter-fest.readerValues.js.map +1 -0
  54. package/dist/iter-fest.readerValues.mjs +7 -0
  55. package/dist/iter-fest.readerValues.mjs.map +1 -0
  56. package/package.json +52 -12
  57. package/dist/chunk-2HLJODU3.mjs.map +0 -1
  58. package/dist/chunk-4LRYDU2Y.mjs +0 -62
  59. package/dist/chunk-4LRYDU2Y.mjs.map +0 -1
  60. package/dist/chunk-K5XV4W7G.mjs.map +0 -1
  61. package/dist/chunk-U6G4RNZ2.mjs +0 -10
  62. package/dist/chunk-U6G4RNZ2.mjs.map +0 -1
  63. package/dist/iter-fest.observableValues.js +0 -100
  64. package/dist/iter-fest.observableValues.js.map +0 -1
  65. package/dist/iter-fest.observableValues.mjs +0 -8
  66. package/dist/iter-fest.readerToAsyncIterableIterator.d.mts +0 -3
  67. package/dist/iter-fest.readerToAsyncIterableIterator.d.ts +0 -3
  68. package/dist/iter-fest.readerToAsyncIterableIterator.js.map +0 -1
  69. package/dist/iter-fest.readerToAsyncIterableIterator.mjs +0 -7
  70. /package/dist/{iter-fest.observableValues.mjs.map → iter-fest.asyncGeneratorWithLastValue.mjs.map} +0 -0
  71. /package/dist/{iter-fest.readerToAsyncIterableIterator.mjs.map → iter-fest.asyncIteratorToAsyncIterable.mjs.map} +0 -0
@@ -1,6 +1,9 @@
1
1
  export { CompleteFunction, ErrorFunction, NextFunction, Observable, Observer, StartFunction, SubscriberFunction, Subscription, SubscriptionObserver } from './iter-fest.observable.mjs';
2
2
  export { PushAsyncIterableIterator } from './iter-fest.pushAsyncIterableIterator.mjs';
3
3
  export { SymbolObservable } from './iter-fest.symbolObservable.mjs';
4
+ export { AsyncGeneratorWithLastValue, asyncGeneratorWithLastValue } from './iter-fest.asyncGeneratorWithLastValue.mjs';
5
+ export { asyncIteratorToAsyncIterable } from './iter-fest.asyncIteratorToAsyncIterable.mjs';
6
+ export { GeneratorWithLastValue, generatorWithLastValue } from './iter-fest.generatorWithLastValue.mjs';
4
7
  export { iterableAt } from './iter-fest.iterableAt.mjs';
5
8
  export { iterableConcat } from './iter-fest.iterableConcat.mjs';
6
9
  export { iterableEntries } from './iter-fest.iterableEntries.mjs';
@@ -11,6 +14,7 @@ export { iterableFindIndex } from './iter-fest.iterableFindIndex.mjs';
11
14
  export { iterableFindLast } from './iter-fest.iterableFindLast.mjs';
12
15
  export { iterableFindLastIndex } from './iter-fest.iterableFindLastIndex.mjs';
13
16
  export { iterableForEach } from './iter-fest.iterableForEach.mjs';
17
+ export { iterableGetReadable } from './iter-fest.iterableGetReadable.mjs';
14
18
  export { iterableIncludes } from './iter-fest.iterableIncludes.mjs';
15
19
  export { iterableIndexOf } from './iter-fest.iterableIndexOf.mjs';
16
20
  export { iterableJoin } from './iter-fest.iterableJoin.mjs';
@@ -23,6 +27,6 @@ export { iterableToSpliced } from './iter-fest.iterableToSpliced.mjs';
23
27
  export { iterableToString } from './iter-fest.iterableToString.mjs';
24
28
  export { iteratorToIterable } from './iter-fest.iteratorToIterable.mjs';
25
29
  export { observableFromAsync } from './iter-fest.observableFromAsync.mjs';
26
- export { observableValues } from './iter-fest.observableValues.mjs';
27
- export { readerToAsyncIterableIterator } from './iter-fest.readerToAsyncIterableIterator.mjs';
30
+ export { observableSubscribeAsReadable } from './iter-fest.observableSubscribeAsReadable.mjs';
31
+ export { readerValues } from './iter-fest.readerValues.mjs';
28
32
  import 'core-js-pure/full/observable';
@@ -1,6 +1,9 @@
1
1
  export { CompleteFunction, ErrorFunction, NextFunction, Observable, Observer, StartFunction, SubscriberFunction, Subscription, SubscriptionObserver } from './iter-fest.observable.js';
2
2
  export { PushAsyncIterableIterator } from './iter-fest.pushAsyncIterableIterator.js';
3
3
  export { SymbolObservable } from './iter-fest.symbolObservable.js';
4
+ export { AsyncGeneratorWithLastValue, asyncGeneratorWithLastValue } from './iter-fest.asyncGeneratorWithLastValue.js';
5
+ export { asyncIteratorToAsyncIterable } from './iter-fest.asyncIteratorToAsyncIterable.js';
6
+ export { GeneratorWithLastValue, generatorWithLastValue } from './iter-fest.generatorWithLastValue.js';
4
7
  export { iterableAt } from './iter-fest.iterableAt.js';
5
8
  export { iterableConcat } from './iter-fest.iterableConcat.js';
6
9
  export { iterableEntries } from './iter-fest.iterableEntries.js';
@@ -11,6 +14,7 @@ export { iterableFindIndex } from './iter-fest.iterableFindIndex.js';
11
14
  export { iterableFindLast } from './iter-fest.iterableFindLast.js';
12
15
  export { iterableFindLastIndex } from './iter-fest.iterableFindLastIndex.js';
13
16
  export { iterableForEach } from './iter-fest.iterableForEach.js';
17
+ export { iterableGetReadable } from './iter-fest.iterableGetReadable.js';
14
18
  export { iterableIncludes } from './iter-fest.iterableIncludes.js';
15
19
  export { iterableIndexOf } from './iter-fest.iterableIndexOf.js';
16
20
  export { iterableJoin } from './iter-fest.iterableJoin.js';
@@ -23,6 +27,6 @@ export { iterableToSpliced } from './iter-fest.iterableToSpliced.js';
23
27
  export { iterableToString } from './iter-fest.iterableToString.js';
24
28
  export { iteratorToIterable } from './iter-fest.iteratorToIterable.js';
25
29
  export { observableFromAsync } from './iter-fest.observableFromAsync.js';
26
- export { observableValues } from './iter-fest.observableValues.js';
27
- export { readerToAsyncIterableIterator } from './iter-fest.readerToAsyncIterableIterator.js';
30
+ export { observableSubscribeAsReadable } from './iter-fest.observableSubscribeAsReadable.js';
31
+ export { readerValues } from './iter-fest.readerValues.js';
28
32
  import 'core-js-pure/full/observable';
@@ -0,0 +1,6 @@
1
+ type GeneratorWithLastValue<T = unknown, TReturn = any, TNext = unknown> = Generator<T, TReturn, TNext> & {
2
+ lastValue(): TReturn;
3
+ };
4
+ declare function generatorWithLastValue<T = unknown, TReturn = any, TNext = unknown>(generator: Generator<T, TReturn, TNext>): GeneratorWithLastValue<T, TReturn, TNext>;
5
+
6
+ export { type GeneratorWithLastValue, generatorWithLastValue };
@@ -0,0 +1,6 @@
1
+ type GeneratorWithLastValue<T = unknown, TReturn = any, TNext = unknown> = Generator<T, TReturn, TNext> & {
2
+ lastValue(): TReturn;
3
+ };
4
+ declare function generatorWithLastValue<T = unknown, TReturn = any, TNext = unknown>(generator: Generator<T, TReturn, TNext>): GeneratorWithLastValue<T, TReturn, TNext>;
5
+
6
+ export { type GeneratorWithLastValue, generatorWithLastValue };
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/generatorWithLastValue.ts
21
+ var generatorWithLastValue_exports = {};
22
+ __export(generatorWithLastValue_exports, {
23
+ generatorWithLastValue: () => generatorWithLastValue
24
+ });
25
+ module.exports = __toCommonJS(generatorWithLastValue_exports);
26
+ var STILL_ITERATING = Symbol();
27
+ function generatorWithLastValue(generator) {
28
+ let lastValue = STILL_ITERATING;
29
+ const generatorWithLastValue2 = {
30
+ [Symbol.iterator]() {
31
+ return generatorWithLastValue2;
32
+ },
33
+ lastValue() {
34
+ if (lastValue === STILL_ITERATING) {
35
+ throw new Error("Iteration has not complete yet, cannot get last value.");
36
+ }
37
+ return lastValue;
38
+ },
39
+ next(next) {
40
+ const result = generator.next(next);
41
+ if (result.done) {
42
+ lastValue = result.value;
43
+ }
44
+ return result;
45
+ },
46
+ return(value) {
47
+ return generator.return(value);
48
+ },
49
+ throw(error) {
50
+ return generator.throw(error);
51
+ }
52
+ };
53
+ return generatorWithLastValue2;
54
+ }
55
+ // Annotate the CommonJS export names for ESM import in node:
56
+ 0 && (module.exports = {
57
+ generatorWithLastValue
58
+ });
59
+ //# sourceMappingURL=iter-fest.generatorWithLastValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generatorWithLastValue.ts"],"sourcesContent":["const STILL_ITERATING = Symbol();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type GeneratorWithLastValue<T = unknown, TReturn = any, TNext = unknown> = Generator<T, TReturn, TNext> & {\n lastValue(): TReturn;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function generatorWithLastValue<T = unknown, TReturn = any, TNext = unknown>(\n generator: Generator<T, TReturn, TNext>\n): GeneratorWithLastValue<T, TReturn, TNext> {\n let lastValue: typeof STILL_ITERATING | TReturn = STILL_ITERATING;\n\n const generatorWithLastValue = {\n [Symbol.iterator]() {\n return generatorWithLastValue;\n },\n lastValue(): TReturn {\n if (lastValue === STILL_ITERATING) {\n throw new Error('Iteration has not complete yet, cannot get last value.');\n }\n\n return lastValue;\n },\n next(next: TNext) {\n const result = generator.next(next);\n\n if (result.done) {\n lastValue = result.value;\n }\n\n return result;\n },\n return(value: TReturn) {\n return generator.return(value);\n },\n throw(error: unknown) {\n return generator.throw(error);\n }\n };\n\n return generatorWithLastValue;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAM,kBAAkB,OAAO;AAQxB,SAAS,uBACd,WAC2C;AAC3C,MAAI,YAA8C;AAElD,QAAMA,0BAAyB;AAAA,IAC7B,CAAC,OAAO,QAAQ,IAAI;AAClB,aAAOA;AAAA,IACT;AAAA,IACA,YAAqB;AACnB,UAAI,cAAc,iBAAiB;AACjC,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAC1E;AAEA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,MAAa;AAChB,YAAM,SAAS,UAAU,KAAK,IAAI;AAElC,UAAI,OAAO,MAAM;AACf,oBAAY,OAAO;AAAA,MACrB;AAEA,aAAO;AAAA,IACT;AAAA,IACA,OAAO,OAAgB;AACrB,aAAO,UAAU,OAAO,KAAK;AAAA,IAC/B;AAAA,IACA,MAAM,OAAgB;AACpB,aAAO,UAAU,MAAM,KAAK;AAAA,IAC9B;AAAA,EACF;AAEA,SAAOA;AACT;","names":["generatorWithLastValue"]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ generatorWithLastValue
3
+ } from "./chunk-2DE3J4J7.mjs";
4
+ export {
5
+ generatorWithLastValue
6
+ };
7
+ //# sourceMappingURL=iter-fest.generatorWithLastValue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function iterableGetReadable<T>(iterable: AsyncIterable<T> | Iterable<T>): ReadableStream<T>;
2
+
3
+ export { iterableGetReadable };
@@ -0,0 +1,3 @@
1
+ declare function iterableGetReadable<T>(iterable: AsyncIterable<T> | Iterable<T>): ReadableStream<T>;
2
+
3
+ export { iterableGetReadable };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/iterableGetReadable.ts
21
+ var iterableGetReadable_exports = {};
22
+ __export(iterableGetReadable_exports, {
23
+ iterableGetReadable: () => iterableGetReadable
24
+ });
25
+ module.exports = __toCommonJS(iterableGetReadable_exports);
26
+ function isIterable(iterable) {
27
+ return !!(iterable && typeof iterable === "object" && Symbol.iterator in iterable);
28
+ }
29
+ function iterableGetReadable(iterable) {
30
+ const iterator = isIterable(iterable) ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();
31
+ return new ReadableStream({
32
+ async pull(controller) {
33
+ const result = await iterator.next();
34
+ if (result.done) {
35
+ controller.close();
36
+ } else {
37
+ controller.enqueue(result.value);
38
+ }
39
+ }
40
+ });
41
+ }
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ iterableGetReadable
45
+ });
46
+ //# sourceMappingURL=iter-fest.iterableGetReadable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/iterableGetReadable.ts"],"sourcesContent":["function isIterable(iterable: unknown): iterable is Iterable<unknown> {\n return !!(iterable && typeof iterable === 'object' && Symbol.iterator in iterable);\n}\n\nexport function iterableGetReadable<T>(iterable: AsyncIterable<T> | Iterable<T>): ReadableStream<T> {\n const iterator = isIterable(iterable) ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();\n\n return new ReadableStream({\n async pull(controller) {\n const result = await iterator.next();\n\n if (result.done) {\n controller.close();\n } else {\n controller.enqueue(result.value);\n }\n }\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAS,WAAW,UAAkD;AACpE,SAAO,CAAC,EAAE,YAAY,OAAO,aAAa,YAAY,OAAO,YAAY;AAC3E;AAEO,SAAS,oBAAuB,UAA6D;AAClG,QAAM,WAAW,WAAW,QAAQ,IAAI,SAAS,OAAO,QAAQ,EAAE,IAAI,SAAS,OAAO,aAAa,EAAE;AAErG,SAAO,IAAI,eAAe;AAAA,IACxB,MAAM,KAAK,YAAY;AACrB,YAAM,SAAS,MAAM,SAAS,KAAK;AAEnC,UAAI,OAAO,MAAM;AACf,mBAAW,MAAM;AAAA,MACnB,OAAO;AACL,mBAAW,QAAQ,OAAO,KAAK;AAAA,MACjC;AAAA,IACF;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -0,0 +1,7 @@
1
+ import {
2
+ iterableGetReadable
3
+ } from "./chunk-MOBXUTO5.mjs";
4
+ export {
5
+ iterableGetReadable
6
+ };
7
+ //# sourceMappingURL=iter-fest.iterableGetReadable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/iter-fest.js CHANGED
@@ -33,6 +33,9 @@ __export(src_exports, {
33
33
  Observable: () => Observable,
34
34
  PushAsyncIterableIterator: () => PushAsyncIterableIterator,
35
35
  SymbolObservable: () => SymbolObservable,
36
+ asyncGeneratorWithLastValue: () => asyncGeneratorWithLastValue,
37
+ asyncIteratorToAsyncIterable: () => asyncIteratorToAsyncIterable,
38
+ generatorWithLastValue: () => generatorWithLastValue,
36
39
  iterableAt: () => iterableAt,
37
40
  iterableConcat: () => iterableConcat,
38
41
  iterableEntries: () => iterableEntries,
@@ -43,6 +46,7 @@ __export(src_exports, {
43
46
  iterableFindLast: () => iterableFindLast,
44
47
  iterableFindLastIndex: () => iterableFindLastIndex,
45
48
  iterableForEach: () => iterableForEach,
49
+ iterableGetReadable: () => iterableGetReadable,
46
50
  iterableIncludes: () => iterableIncludes,
47
51
  iterableIndexOf: () => iterableIndexOf,
48
52
  iterableJoin: () => iterableJoin,
@@ -55,8 +59,8 @@ __export(src_exports, {
55
59
  iterableToString: () => iterableToString,
56
60
  iteratorToIterable: () => iteratorToIterable,
57
61
  observableFromAsync: () => observableFromAsync,
58
- observableValues: () => observableValues,
59
- readerToAsyncIterableIterator: () => readerToAsyncIterableIterator
62
+ observableSubscribeAsReadable: () => observableSubscribeAsReadable,
63
+ readerValues: () => readerValues
60
64
  });
61
65
  module.exports = __toCommonJS(src_exports);
62
66
 
@@ -121,6 +125,79 @@ var PushAsyncIterableIterator = class {
121
125
  }
122
126
  };
123
127
 
128
+ // src/asyncGeneratorWithLastValue.ts
129
+ var STILL_ITERATING = Symbol();
130
+ function asyncGeneratorWithLastValue(generator) {
131
+ let lastValue = STILL_ITERATING;
132
+ const asyncGeneratorWithLastValue2 = {
133
+ [Symbol.asyncIterator]() {
134
+ return asyncGeneratorWithLastValue2;
135
+ },
136
+ lastValue() {
137
+ if (lastValue === STILL_ITERATING) {
138
+ throw new Error("Iteration has not complete yet, cannot get last value.");
139
+ }
140
+ return lastValue;
141
+ },
142
+ async next(next) {
143
+ const result = await generator.next(next);
144
+ if (result.done) {
145
+ lastValue = result.value;
146
+ }
147
+ return result;
148
+ },
149
+ return(value) {
150
+ return generator.return(value);
151
+ },
152
+ throw(error) {
153
+ return generator.throw(error);
154
+ }
155
+ };
156
+ return asyncGeneratorWithLastValue2;
157
+ }
158
+
159
+ // src/asyncIteratorToAsyncIterable.ts
160
+ function asyncIteratorToAsyncIterable(asyncIterator) {
161
+ const asyncIterableIterator = {
162
+ [Symbol.asyncIterator]: () => asyncIterableIterator,
163
+ next: asyncIterator.next.bind(asyncIterator),
164
+ ...asyncIterator.return ? { return: asyncIterator.return.bind(asyncIterator) } : {},
165
+ ...asyncIterator.throw ? { throw: asyncIterator.throw.bind(asyncIterator) } : {}
166
+ };
167
+ return asyncIterableIterator;
168
+ }
169
+
170
+ // src/generatorWithLastValue.ts
171
+ var STILL_ITERATING2 = Symbol();
172
+ function generatorWithLastValue(generator) {
173
+ let lastValue = STILL_ITERATING2;
174
+ const generatorWithLastValue2 = {
175
+ [Symbol.iterator]() {
176
+ return generatorWithLastValue2;
177
+ },
178
+ lastValue() {
179
+ if (lastValue === STILL_ITERATING2) {
180
+ throw new Error("Iteration has not complete yet, cannot get last value.");
181
+ }
182
+ return lastValue;
183
+ },
184
+ next(next) {
185
+ const result = generator.next(next);
186
+ if (result.done) {
187
+ lastValue = result.value;
188
+ }
189
+ return result;
190
+ },
191
+ return(value) {
192
+ return generator.return(value);
193
+ },
194
+ throw(error) {
195
+ return generator.throw(error);
196
+ }
197
+ };
198
+ return generatorWithLastValue2;
199
+ }
200
+
124
201
  // src/private/toIntegerOrInfinity.ts
125
202
  function toIntegerOrInfinity(value) {
126
203
  if (value === Infinity || value === -Infinity) {
@@ -272,6 +349,24 @@ function iterableForEach(iterable, callbackfn, thisArg) {
272
349
  }
273
350
  }
274
351
 
352
+ // src/iterableGetReadable.ts
353
+ function isIterable(iterable) {
354
+ return !!(iterable && typeof iterable === "object" && Symbol.iterator in iterable);
355
+ }
356
+ function iterableGetReadable(iterable) {
357
+ const iterator = isIterable(iterable) ? iterable[Symbol.iterator]() : iterable[Symbol.asyncIterator]();
358
+ return new ReadableStream({
359
+ async pull(controller) {
360
+ const result = await iterator.next();
361
+ if (result.done) {
362
+ controller.close();
363
+ } else {
364
+ controller.enqueue(result.value);
365
+ }
366
+ }
367
+ });
368
+ }
369
+
275
370
  // src/iterableIncludes.ts
276
371
  function iterableIncludes(iterable, searchElement, fromIndex = 0) {
277
372
  let index = 0;
@@ -462,62 +557,31 @@ function observableFromAsync(iterable) {
462
557
  });
463
558
  }
464
559
 
465
- // src/observableValues.ts
466
- var COMPLETE = Symbol("complete");
467
- var NEXT = Symbol("next");
468
- var THROW = Symbol("throw");
469
- function observableValues(observable) {
470
- const queue = [];
471
- let deferred = withResolvers();
472
- const push = (entry) => {
473
- queue.push(entry);
474
- deferred.resolve(entry);
475
- deferred = withResolvers();
476
- };
477
- const subscription = observable.subscribe({
478
- complete() {
479
- push([COMPLETE]);
480
- },
481
- error(err) {
482
- push([THROW, err]);
483
- },
484
- next(value) {
485
- push([NEXT, value]);
486
- }
487
- });
488
- const asyncIterableIterator = {
489
- [Symbol.asyncIterator]() {
490
- return this;
491
- },
492
- async next() {
493
- let entry = queue.shift();
494
- if (!entry) {
495
- entry = await deferred.promise;
496
- queue.shift();
497
- }
498
- switch (entry[0]) {
499
- case COMPLETE:
500
- return { done: true, value: void 0 };
501
- case THROW:
502
- throw entry[1];
503
- case NEXT:
504
- return { done: false, value: entry[1] };
505
- }
506
- },
507
- async return() {
560
+ // src/observableSubscribeAsReadable.ts
561
+ function observableSubscribeAsReadable(observable) {
562
+ let subscription;
563
+ return new ReadableStream({
564
+ cancel() {
508
565
  subscription.unsubscribe();
509
- return { done: true, value: void 0 };
510
566
  },
511
- async throw() {
512
- subscription.unsubscribe();
513
- return { done: true, value: void 0 };
567
+ start(controller) {
568
+ subscription = observable.subscribe({
569
+ complete() {
570
+ controller.close();
571
+ },
572
+ error(err) {
573
+ controller.error(err);
574
+ },
575
+ next(value) {
576
+ controller.enqueue(value);
577
+ }
578
+ });
514
579
  }
515
- };
516
- return asyncIterableIterator;
580
+ });
517
581
  }
518
582
 
519
- // src/readerToAsyncIterableIterator.ts
520
- function readerToAsyncIterableIterator(reader) {
583
+ // src/readerValues.ts
584
+ function readerValues(reader) {
521
585
  const iterable = {
522
586
  [Symbol.asyncIterator]() {
523
587
  return iterable;
@@ -528,6 +592,10 @@ function readerToAsyncIterableIterator(reader) {
528
592
  return { done: true, value: void 0 };
529
593
  }
530
594
  return { value: result.value };
595
+ },
596
+ async return() {
597
+ reader.cancel();
598
+ return { done: true, value: void 0 };
531
599
  }
532
600
  };
533
601
  return iterable;
@@ -537,6 +605,9 @@ function readerToAsyncIterableIterator(reader) {
537
605
  Observable,
538
606
  PushAsyncIterableIterator,
539
607
  SymbolObservable,
608
+ asyncGeneratorWithLastValue,
609
+ asyncIteratorToAsyncIterable,
610
+ generatorWithLastValue,
540
611
  iterableAt,
541
612
  iterableConcat,
542
613
  iterableEntries,
@@ -547,6 +618,7 @@ function readerToAsyncIterableIterator(reader) {
547
618
  iterableFindLast,
548
619
  iterableFindLastIndex,
549
620
  iterableForEach,
621
+ iterableGetReadable,
550
622
  iterableIncludes,
551
623
  iterableIndexOf,
552
624
  iterableJoin,
@@ -559,7 +631,7 @@ function readerToAsyncIterableIterator(reader) {
559
631
  iterableToString,
560
632
  iteratorToIterable,
561
633
  observableFromAsync,
562
- observableValues,
563
- readerToAsyncIterableIterator
634
+ observableSubscribeAsReadable,
635
+ readerValues
564
636
  });
565
637
  //# sourceMappingURL=iter-fest.js.map