@okikio/observables 1.0.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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +578 -0
  3. package/esm/_dnt.polyfills.d.ts +20 -0
  4. package/esm/_dnt.polyfills.d.ts.map +1 -0
  5. package/esm/_dnt.polyfills.js +12 -0
  6. package/esm/_spec.d.ts +260 -0
  7. package/esm/_spec.d.ts.map +1 -0
  8. package/esm/_spec.js +1 -0
  9. package/esm/_types.d.ts +141 -0
  10. package/esm/_types.d.ts.map +1 -0
  11. package/esm/_types.js +20 -0
  12. package/esm/error.d.ts +331 -0
  13. package/esm/error.d.ts.map +1 -0
  14. package/esm/error.js +408 -0
  15. package/esm/events.d.ts +320 -0
  16. package/esm/events.d.ts.map +1 -0
  17. package/esm/events.js +451 -0
  18. package/esm/helpers/_types.d.ts +188 -0
  19. package/esm/helpers/_types.d.ts.map +1 -0
  20. package/esm/helpers/_types.js +1 -0
  21. package/esm/helpers/mod.d.ts +90 -0
  22. package/esm/helpers/mod.d.ts.map +1 -0
  23. package/esm/helpers/mod.js +90 -0
  24. package/esm/helpers/operations/batch.d.ts +109 -0
  25. package/esm/helpers/operations/batch.d.ts.map +1 -0
  26. package/esm/helpers/operations/batch.js +140 -0
  27. package/esm/helpers/operations/combination.d.ts +162 -0
  28. package/esm/helpers/operations/combination.d.ts.map +1 -0
  29. package/esm/helpers/operations/combination.js +350 -0
  30. package/esm/helpers/operations/conditional.d.ts +211 -0
  31. package/esm/helpers/operations/conditional.d.ts.map +1 -0
  32. package/esm/helpers/operations/conditional.js +280 -0
  33. package/esm/helpers/operations/core.d.ts +198 -0
  34. package/esm/helpers/operations/core.d.ts.map +1 -0
  35. package/esm/helpers/operations/core.js +264 -0
  36. package/esm/helpers/operations/errors.d.ts +277 -0
  37. package/esm/helpers/operations/errors.d.ts.map +1 -0
  38. package/esm/helpers/operations/errors.js +378 -0
  39. package/esm/helpers/operations/mod.d.ts +26 -0
  40. package/esm/helpers/operations/mod.d.ts.map +1 -0
  41. package/esm/helpers/operations/mod.js +25 -0
  42. package/esm/helpers/operations/timing.d.ts +206 -0
  43. package/esm/helpers/operations/timing.d.ts.map +1 -0
  44. package/esm/helpers/operations/timing.js +457 -0
  45. package/esm/helpers/operators.d.ts +520 -0
  46. package/esm/helpers/operators.d.ts.map +1 -0
  47. package/esm/helpers/operators.js +563 -0
  48. package/esm/helpers/pipe.d.ts +118 -0
  49. package/esm/helpers/pipe.d.ts.map +1 -0
  50. package/esm/helpers/pipe.js +129 -0
  51. package/esm/helpers/utils.d.ts +142 -0
  52. package/esm/helpers/utils.d.ts.map +1 -0
  53. package/esm/helpers/utils.js +193 -0
  54. package/esm/mod.d.ts +863 -0
  55. package/esm/mod.d.ts.map +1 -0
  56. package/esm/mod.js +861 -0
  57. package/esm/observable.d.ts +1610 -0
  58. package/esm/observable.d.ts.map +1 -0
  59. package/esm/observable.js +1970 -0
  60. package/esm/package.json +3 -0
  61. package/esm/queue.d.ts +201 -0
  62. package/esm/queue.d.ts.map +1 -0
  63. package/esm/queue.js +273 -0
  64. package/esm/symbol.d.ts +60 -0
  65. package/esm/symbol.d.ts.map +1 -0
  66. package/esm/symbol.js +132 -0
  67. package/package.json +96 -0
  68. package/script/_dnt.polyfills.d.ts +20 -0
  69. package/script/_dnt.polyfills.d.ts.map +1 -0
  70. package/script/_dnt.polyfills.js +13 -0
  71. package/script/_spec.d.ts +260 -0
  72. package/script/_spec.d.ts.map +1 -0
  73. package/script/_spec.js +2 -0
  74. package/script/_types.d.ts +141 -0
  75. package/script/_types.d.ts.map +1 -0
  76. package/script/_types.js +22 -0
  77. package/script/error.d.ts +331 -0
  78. package/script/error.d.ts.map +1 -0
  79. package/script/error.js +414 -0
  80. package/script/events.d.ts +320 -0
  81. package/script/events.d.ts.map +1 -0
  82. package/script/events.js +458 -0
  83. package/script/helpers/_types.d.ts +188 -0
  84. package/script/helpers/_types.d.ts.map +1 -0
  85. package/script/helpers/_types.js +2 -0
  86. package/script/helpers/mod.d.ts +90 -0
  87. package/script/helpers/mod.d.ts.map +1 -0
  88. package/script/helpers/mod.js +106 -0
  89. package/script/helpers/operations/batch.d.ts +109 -0
  90. package/script/helpers/operations/batch.d.ts.map +1 -0
  91. package/script/helpers/operations/batch.js +144 -0
  92. package/script/helpers/operations/combination.d.ts +162 -0
  93. package/script/helpers/operations/combination.d.ts.map +1 -0
  94. package/script/helpers/operations/combination.js +355 -0
  95. package/script/helpers/operations/conditional.d.ts +211 -0
  96. package/script/helpers/operations/conditional.d.ts.map +1 -0
  97. package/script/helpers/operations/conditional.js +286 -0
  98. package/script/helpers/operations/core.d.ts +198 -0
  99. package/script/helpers/operations/core.d.ts.map +1 -0
  100. package/script/helpers/operations/core.js +272 -0
  101. package/script/helpers/operations/errors.d.ts +277 -0
  102. package/script/helpers/operations/errors.d.ts.map +1 -0
  103. package/script/helpers/operations/errors.js +387 -0
  104. package/script/helpers/operations/mod.d.ts +26 -0
  105. package/script/helpers/operations/mod.d.ts.map +1 -0
  106. package/script/helpers/operations/mod.js +41 -0
  107. package/script/helpers/operations/timing.d.ts +206 -0
  108. package/script/helpers/operations/timing.d.ts.map +1 -0
  109. package/script/helpers/operations/timing.js +464 -0
  110. package/script/helpers/operators.d.ts +520 -0
  111. package/script/helpers/operators.d.ts.map +1 -0
  112. package/script/helpers/operators.js +570 -0
  113. package/script/helpers/pipe.d.ts +118 -0
  114. package/script/helpers/pipe.d.ts.map +1 -0
  115. package/script/helpers/pipe.js +132 -0
  116. package/script/helpers/utils.d.ts +142 -0
  117. package/script/helpers/utils.d.ts.map +1 -0
  118. package/script/helpers/utils.js +200 -0
  119. package/script/mod.d.ts +863 -0
  120. package/script/mod.d.ts.map +1 -0
  121. package/script/mod.js +877 -0
  122. package/script/observable.d.ts +1610 -0
  123. package/script/observable.d.ts.map +1 -0
  124. package/script/observable.js +1984 -0
  125. package/script/package.json +3 -0
  126. package/script/queue.d.ts +201 -0
  127. package/script/queue.d.ts.map +1 -0
  128. package/script/queue.js +286 -0
  129. package/script/symbol.d.ts +60 -0
  130. package/script/symbol.d.ts.map +1 -0
  131. package/script/symbol.js +135 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../src/helpers/pipe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ // helpers/pipe.ts
3
+ // Composition utility for Observable operators
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.pipe = pipe;
6
+ const observable_js_1 = require("../observable.js");
7
+ const utils_js_1 = require("./utils.js");
8
+ const symbol_js_1 = require("../symbol.js");
9
+ // Implementation
10
+ function pipe(source, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) {
11
+ // Ignore the source argument
12
+ const len = arguments.length - 1;
13
+ if (len === 0)
14
+ return source;
15
+ if (len > 19) {
16
+ throw new Error("pipe: Too many operators (maximum 19).");
17
+ }
18
+ if (typeof source[symbol_js_1.Symbol.observable] !== "function") {
19
+ throw new TypeError("pipe: source must be an Observable");
20
+ }
21
+ return new observable_js_1.Observable((observer) => {
22
+ let result = (0, utils_js_1.toStream)((0, observable_js_1.pull)(source, { throwError: false }));
23
+ const errorPrefix = "pipe:operator";
24
+ if (op1) {
25
+ result = (0, utils_js_1.applyOperator)(result, op1, { message: errorPrefix + `[1]` });
26
+ }
27
+ if (op2) {
28
+ result = (0, utils_js_1.applyOperator)(result, op2, { message: errorPrefix + `[2]` });
29
+ }
30
+ if (op3) {
31
+ result = (0, utils_js_1.applyOperator)(result, op3, { message: errorPrefix + `[3]` });
32
+ }
33
+ if (op4) {
34
+ result = (0, utils_js_1.applyOperator)(result, op4, { message: errorPrefix + `[4]` });
35
+ }
36
+ if (op5) {
37
+ result = (0, utils_js_1.applyOperator)(result, op5, { message: errorPrefix + `[5]` });
38
+ }
39
+ if (op6) {
40
+ result = (0, utils_js_1.applyOperator)(result, op6, { message: errorPrefix + `[6]` });
41
+ }
42
+ if (op7) {
43
+ result = (0, utils_js_1.applyOperator)(result, op7, { message: errorPrefix + `[7]` });
44
+ }
45
+ if (op8) {
46
+ result = (0, utils_js_1.applyOperator)(result, op8, { message: errorPrefix + `[8]` });
47
+ }
48
+ if (op9) {
49
+ result = (0, utils_js_1.applyOperator)(result, op9, { message: errorPrefix + `[9]` });
50
+ }
51
+ if (op10) {
52
+ result = (0, utils_js_1.applyOperator)(result, op10, { message: errorPrefix + `[10]` });
53
+ }
54
+ if (op11) {
55
+ result = (0, utils_js_1.applyOperator)(result, op11, { message: errorPrefix + `[11]` });
56
+ }
57
+ if (op12) {
58
+ result = (0, utils_js_1.applyOperator)(result, op12, { message: errorPrefix + `[12]` });
59
+ }
60
+ if (op13) {
61
+ result = (0, utils_js_1.applyOperator)(result, op13, { message: errorPrefix + `[13]` });
62
+ }
63
+ if (op14) {
64
+ result = (0, utils_js_1.applyOperator)(result, op14, { message: errorPrefix + `[14]` });
65
+ }
66
+ if (op15) {
67
+ result = (0, utils_js_1.applyOperator)(result, op15, { message: errorPrefix + `[15]` });
68
+ }
69
+ if (op16) {
70
+ result = (0, utils_js_1.applyOperator)(result, op16, { message: errorPrefix + `[16]` });
71
+ }
72
+ if (op17) {
73
+ result = (0, utils_js_1.applyOperator)(result, op17, { message: errorPrefix + `[17]` });
74
+ }
75
+ if (op18) {
76
+ result = (0, utils_js_1.applyOperator)(result, op18, { message: errorPrefix + `[18]` });
77
+ }
78
+ if (op19) {
79
+ result = (0, utils_js_1.applyOperator)(result, op19, { message: errorPrefix + `[19]` });
80
+ }
81
+ const reader = result.getReader();
82
+ let cancelled = false;
83
+ (async () => {
84
+ try {
85
+ while (true) {
86
+ const { done, value } = await reader.read();
87
+ if (done)
88
+ break;
89
+ observer.next(value);
90
+ if (observer.closed) {
91
+ cancelled = true;
92
+ try {
93
+ await reader.cancel();
94
+ }
95
+ catch {
96
+ // Ignore cancellation failures while the subscription is closing.
97
+ }
98
+ break;
99
+ }
100
+ }
101
+ if (!cancelled) {
102
+ cancelled = true;
103
+ observer.complete();
104
+ }
105
+ }
106
+ catch (err) {
107
+ if (!cancelled) {
108
+ cancelled = true;
109
+ observer.error(err);
110
+ try {
111
+ await reader.cancel(err);
112
+ }
113
+ catch {
114
+ // Ignore cancellation failures while surfacing the original error.
115
+ }
116
+ }
117
+ }
118
+ finally {
119
+ try {
120
+ reader.releaseLock();
121
+ }
122
+ catch {
123
+ // Ignore release failures during cancellation.
124
+ }
125
+ }
126
+ })();
127
+ return () => {
128
+ cancelled = true;
129
+ void reader.cancel();
130
+ };
131
+ });
132
+ }
@@ -0,0 +1,142 @@
1
+ import type { TransformFunctionOptions, TransformStreamOptions } from "./_types.js";
2
+ import type { CreateOperatorOptions, Operator } from "./_types.js";
3
+ import { ObservableError } from "../error.js";
4
+ /**
5
+ * Type guard to check if options is a TransformStreamOptions
6
+ *
7
+ * This checks if the options object has a 'stream' property,
8
+ * indicating it is using an existing TransformStream.
9
+ *
10
+ * @typeParam T - Input type
11
+ * @typeParam R - Output type
12
+ * @param options - The options object to check
13
+ * @returns True if options is TransformStreamOptions, false otherwise
14
+ */
15
+ export declare function isTransformStreamOptions<T, R>(options: CreateOperatorOptions<T, R>): options is TransformStreamOptions<T, R>;
16
+ /**
17
+ * Type guard to check if options is a TransformFunctionOptions
18
+ *
19
+ * This checks if the options object has a 'transform' property,
20
+ * indicating it is using a custom transformation function.
21
+ *
22
+ * @typeParam T - Input type
23
+ * @typeParam R - Output type
24
+ * @param options - The options object to check
25
+ * @returns True if options is TransformFunctionOptions, false otherwise
26
+ */
27
+ export declare function isTransformFunctionOptions<T, R>(options: CreateOperatorOptions<T, R>): options is TransformFunctionOptions<T, R>;
28
+ /**
29
+ * Applies an operator to a ReadableStream, handling errors gracefully.
30
+ *
31
+ * This function attempts to apply the given operator to the input stream.
32
+ * If the operator throws an error, it injects that error into the stream
33
+ * using `injectError`, allowing downstream consumers to handle it.
34
+ *
35
+ * @param input - The ReadableStream to apply the operator to
36
+ * @param operator - The operator function to apply
37
+ * @param message - Optional message for error context
38
+ * @returns A new ReadableStream with the operator applied or an error injected
39
+ */
40
+ export declare function applyOperator(input: ReadableStream<unknown>, operator: Operator<any, any>, { message }?: {
41
+ message?: string | undefined;
42
+ }): ReadableStream<unknown>;
43
+ /**
44
+ * Creates a ReadableStream from an iterable or async iterable
45
+ *
46
+ * This utility function creates a ReadableStream from any iterable or async iterable,
47
+ * such as arrays, generators, or custom iterables.
48
+ *
49
+ * @typeParam T - Type of values in the iterable
50
+ * @param iterable - The iterable or async iterable to convert
51
+ * @returns A ReadableStream that emits values from the iterable
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * import { fromIterable, pipe, map } from "./helpers/mod.ts";
56
+ *
57
+ * // Create a stream from an array
58
+ * const numbers = fromIterable([1, 2, 3, 4, 5]);
59
+ *
60
+ * // Create a stream from a generator
61
+ * function* generateNumbers() {
62
+ * for (let i = 0; i < 5; i++) {
63
+ * yield i;
64
+ * }
65
+ * }
66
+ * const generated = fromIterable(generateNumbers());
67
+ *
68
+ * // Process with operators
69
+ * const result = pipe(
70
+ * numbers,
71
+ * map(x => x * 2)
72
+ * );
73
+ * ```
74
+ */
75
+ export declare function toStream<T>(iterable: Iterable<T> | AsyncIterable<T>): ReadableStream<T | ObservableError>;
76
+ /**
77
+ * Creates a TransformStream that injects an error at the start and passes through all original data.
78
+ *
79
+ * ## What this does
80
+ * Think of this as creating a "tee" in your stream pipeline where an error gets injected at the
81
+ * beginning, but all your original data continues to flow through unchanged. It's like adding
82
+ * a warning sign at the start of a conveyor belt while keeping everything else moving.
83
+ *
84
+ * ## Why you need this
85
+ * When operator setup fails, you want to signal the error but not lose all your data. This creates
86
+ * a transform that does exactly that - it marks the problem but preserves your stream's content.
87
+ *
88
+ * ## How it works
89
+ * The transform immediately outputs the error when the stream starts, then passes every chunk
90
+ * from the source unchanged. Your downstream consumers see the error first, then all the data.
91
+ *
92
+ * ## When to use this
93
+ * - **Operator setup failures**: When building an operator fails but the source data is still valid
94
+ * - **Warning injection**: When you want to flag a problem but continue processing
95
+ * - **Error preservation**: When you need both error information and data preservation
96
+ *
97
+ * ## What the output looks like
98
+ * ```typescript
99
+ * // Original stream: [1, 2, 3, 4, 5]
100
+ * // After error injection: [ObservableError("setup failed"), 1, 2, 3, 4, 5]
101
+ * // The error appears first, then all original data flows through
102
+ * ```
103
+ *
104
+ * @param error The error to inject at the start of the stream
105
+ * @param context Context string for error reporting (where it happened)
106
+ *
107
+ * @returns A TransformStream that injects the error and passes through data
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // Handle operator setup failure
112
+ * function createSafeOperator<T, R>(
113
+ * operatorBuilder: () => Operator<T, R>,
114
+ * context: string
115
+ * ): Operator<T, R | ObservableError> {
116
+ * return (source: ReadableStream<T>) => {
117
+ * try {
118
+ * return operatorBuilder()(source);
119
+ * } catch (err) {
120
+ * return source.pipeThrough(
121
+ * createErrorInjectionTransform(err, context)
122
+ * );
123
+ * }
124
+ * };
125
+ * }
126
+ * ```
127
+ *
128
+ * @example
129
+ * ```typescript
130
+ * // Add warning to stream without breaking it
131
+ * const warningStream = dataStream.pipeThrough(
132
+ * createErrorInjectionTransform(
133
+ * new Error("Data quality issue detected"),
134
+ * "data-validation"
135
+ * )
136
+ * );
137
+ *
138
+ * // Consumers will see: [Error, ...originalData]
139
+ * ```
140
+ */
141
+ export declare function injectError<T>(error?: Error | Error[] | unknown | unknown[], context?: string, value?: unknown): TransformStream<T, ObservableError>;
142
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/helpers/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,CAAC,EAC3C,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACnC,OAAO,IAAI,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC,CAEzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAC7C,OAAO,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACnC,OAAO,IAAI,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAE3C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAE9B,QAAQ,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC5B,EAAE,OAAyB,EAAE;;CAAK,GACjC,cAAc,CAAC,OAAO,CAAC,CAOzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,GACvC,cAAc,CAAC,CAAC,GAAG,eAAe,CAAC,CAkCrC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAC3B,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,GAAG,OAAO,EAAE,EAC7C,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,GACd,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAOrC"}
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransformStreamOptions = isTransformStreamOptions;
4
+ exports.isTransformFunctionOptions = isTransformFunctionOptions;
5
+ exports.applyOperator = applyOperator;
6
+ exports.toStream = toStream;
7
+ exports.injectError = injectError;
8
+ const error_js_1 = require("../error.js");
9
+ /**
10
+ * Type guard to check if options is a TransformStreamOptions
11
+ *
12
+ * This checks if the options object has a 'stream' property,
13
+ * indicating it is using an existing TransformStream.
14
+ *
15
+ * @typeParam T - Input type
16
+ * @typeParam R - Output type
17
+ * @param options - The options object to check
18
+ * @returns True if options is TransformStreamOptions, false otherwise
19
+ */
20
+ function isTransformStreamOptions(options) {
21
+ return "stream" in options;
22
+ }
23
+ /**
24
+ * Type guard to check if options is a TransformFunctionOptions
25
+ *
26
+ * This checks if the options object has a 'transform' property,
27
+ * indicating it is using a custom transformation function.
28
+ *
29
+ * @typeParam T - Input type
30
+ * @typeParam R - Output type
31
+ * @param options - The options object to check
32
+ * @returns True if options is TransformFunctionOptions, false otherwise
33
+ */
34
+ function isTransformFunctionOptions(options) {
35
+ return "transform" in options;
36
+ }
37
+ /**
38
+ * Applies an operator to a ReadableStream, handling errors gracefully.
39
+ *
40
+ * This function attempts to apply the given operator to the input stream.
41
+ * If the operator throws an error, it injects that error into the stream
42
+ * using `injectError`, allowing downstream consumers to handle it.
43
+ *
44
+ * @param input - The ReadableStream to apply the operator to
45
+ * @param operator - The operator function to apply
46
+ * @param message - Optional message for error context
47
+ * @returns A new ReadableStream with the operator applied or an error injected
48
+ */
49
+ function applyOperator(input,
50
+ // deno-lint-ignore no-explicit-any
51
+ operator, { message = `pipe:operator` } = {}) {
52
+ try {
53
+ const result = operator(input);
54
+ return result;
55
+ }
56
+ catch (err) {
57
+ return input.pipeThrough(injectError(err, message));
58
+ }
59
+ }
60
+ /**
61
+ * Creates a ReadableStream from an iterable or async iterable
62
+ *
63
+ * This utility function creates a ReadableStream from any iterable or async iterable,
64
+ * such as arrays, generators, or custom iterables.
65
+ *
66
+ * @typeParam T - Type of values in the iterable
67
+ * @param iterable - The iterable or async iterable to convert
68
+ * @returns A ReadableStream that emits values from the iterable
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * import { fromIterable, pipe, map } from "./helpers/mod.ts";
73
+ *
74
+ * // Create a stream from an array
75
+ * const numbers = fromIterable([1, 2, 3, 4, 5]);
76
+ *
77
+ * // Create a stream from a generator
78
+ * function* generateNumbers() {
79
+ * for (let i = 0; i < 5; i++) {
80
+ * yield i;
81
+ * }
82
+ * }
83
+ * const generated = fromIterable(generateNumbers());
84
+ *
85
+ * // Process with operators
86
+ * const result = pipe(
87
+ * numbers,
88
+ * map(x => x * 2)
89
+ * );
90
+ * ```
91
+ */
92
+ function toStream(iterable) {
93
+ // Check if it's an async iterable
94
+ const isAsync = typeof iterable[Symbol.asyncIterator] === "function";
95
+ return new ReadableStream({
96
+ async start(controller) {
97
+ try {
98
+ if (isAsync) {
99
+ for await (const item of iterable) {
100
+ controller.enqueue(item);
101
+ }
102
+ }
103
+ else {
104
+ for (const item of iterable) {
105
+ controller.enqueue(item);
106
+ }
107
+ }
108
+ try {
109
+ controller.close();
110
+ }
111
+ catch {
112
+ // Downstream may already be closed or errored.
113
+ }
114
+ }
115
+ catch (err) {
116
+ try {
117
+ controller.enqueue(error_js_1.ObservableError.from(err, "toStream"));
118
+ controller.close();
119
+ }
120
+ catch {
121
+ // If downstream is already unavailable, the original failure has
122
+ // already decided the stream outcome. Do not surface a second error.
123
+ }
124
+ }
125
+ },
126
+ });
127
+ }
128
+ /**
129
+ * Creates a TransformStream that injects an error at the start and passes through all original data.
130
+ *
131
+ * ## What this does
132
+ * Think of this as creating a "tee" in your stream pipeline where an error gets injected at the
133
+ * beginning, but all your original data continues to flow through unchanged. It's like adding
134
+ * a warning sign at the start of a conveyor belt while keeping everything else moving.
135
+ *
136
+ * ## Why you need this
137
+ * When operator setup fails, you want to signal the error but not lose all your data. This creates
138
+ * a transform that does exactly that - it marks the problem but preserves your stream's content.
139
+ *
140
+ * ## How it works
141
+ * The transform immediately outputs the error when the stream starts, then passes every chunk
142
+ * from the source unchanged. Your downstream consumers see the error first, then all the data.
143
+ *
144
+ * ## When to use this
145
+ * - **Operator setup failures**: When building an operator fails but the source data is still valid
146
+ * - **Warning injection**: When you want to flag a problem but continue processing
147
+ * - **Error preservation**: When you need both error information and data preservation
148
+ *
149
+ * ## What the output looks like
150
+ * ```typescript
151
+ * // Original stream: [1, 2, 3, 4, 5]
152
+ * // After error injection: [ObservableError("setup failed"), 1, 2, 3, 4, 5]
153
+ * // The error appears first, then all original data flows through
154
+ * ```
155
+ *
156
+ * @param error The error to inject at the start of the stream
157
+ * @param context Context string for error reporting (where it happened)
158
+ *
159
+ * @returns A TransformStream that injects the error and passes through data
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * // Handle operator setup failure
164
+ * function createSafeOperator<T, R>(
165
+ * operatorBuilder: () => Operator<T, R>,
166
+ * context: string
167
+ * ): Operator<T, R | ObservableError> {
168
+ * return (source: ReadableStream<T>) => {
169
+ * try {
170
+ * return operatorBuilder()(source);
171
+ * } catch (err) {
172
+ * return source.pipeThrough(
173
+ * createErrorInjectionTransform(err, context)
174
+ * );
175
+ * }
176
+ * };
177
+ * }
178
+ * ```
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * // Add warning to stream without breaking it
183
+ * const warningStream = dataStream.pipeThrough(
184
+ * createErrorInjectionTransform(
185
+ * new Error("Data quality issue detected"),
186
+ * "data-validation"
187
+ * )
188
+ * );
189
+ *
190
+ * // Consumers will see: [Error, ...originalData]
191
+ * ```
192
+ */
193
+ function injectError(error, context, value) {
194
+ return new TransformStream({
195
+ start(controller) {
196
+ // Inject the error as the first item in the stream
197
+ controller.enqueue(error_js_1.ObservableError.from(error, context, value));
198
+ },
199
+ });
200
+ }