@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,129 @@
1
+ // helpers/pipe.ts
2
+ // Composition utility for Observable operators
3
+ import { Observable, pull } from "../observable.js";
4
+ import { applyOperator, toStream } from "./utils.js";
5
+ import { Symbol } from "../symbol.js";
6
+ // Implementation
7
+ export function pipe(source, op1, op2, op3, op4, op5, op6, op7, op8, op9, op10, op11, op12, op13, op14, op15, op16, op17, op18, op19) {
8
+ // Ignore the source argument
9
+ const len = arguments.length - 1;
10
+ if (len === 0)
11
+ return source;
12
+ if (len > 19) {
13
+ throw new Error("pipe: Too many operators (maximum 19).");
14
+ }
15
+ if (typeof source[Symbol.observable] !== "function") {
16
+ throw new TypeError("pipe: source must be an Observable");
17
+ }
18
+ return new Observable((observer) => {
19
+ let result = toStream(pull(source, { throwError: false }));
20
+ const errorPrefix = "pipe:operator";
21
+ if (op1) {
22
+ result = applyOperator(result, op1, { message: errorPrefix + `[1]` });
23
+ }
24
+ if (op2) {
25
+ result = applyOperator(result, op2, { message: errorPrefix + `[2]` });
26
+ }
27
+ if (op3) {
28
+ result = applyOperator(result, op3, { message: errorPrefix + `[3]` });
29
+ }
30
+ if (op4) {
31
+ result = applyOperator(result, op4, { message: errorPrefix + `[4]` });
32
+ }
33
+ if (op5) {
34
+ result = applyOperator(result, op5, { message: errorPrefix + `[5]` });
35
+ }
36
+ if (op6) {
37
+ result = applyOperator(result, op6, { message: errorPrefix + `[6]` });
38
+ }
39
+ if (op7) {
40
+ result = applyOperator(result, op7, { message: errorPrefix + `[7]` });
41
+ }
42
+ if (op8) {
43
+ result = applyOperator(result, op8, { message: errorPrefix + `[8]` });
44
+ }
45
+ if (op9) {
46
+ result = applyOperator(result, op9, { message: errorPrefix + `[9]` });
47
+ }
48
+ if (op10) {
49
+ result = applyOperator(result, op10, { message: errorPrefix + `[10]` });
50
+ }
51
+ if (op11) {
52
+ result = applyOperator(result, op11, { message: errorPrefix + `[11]` });
53
+ }
54
+ if (op12) {
55
+ result = applyOperator(result, op12, { message: errorPrefix + `[12]` });
56
+ }
57
+ if (op13) {
58
+ result = applyOperator(result, op13, { message: errorPrefix + `[13]` });
59
+ }
60
+ if (op14) {
61
+ result = applyOperator(result, op14, { message: errorPrefix + `[14]` });
62
+ }
63
+ if (op15) {
64
+ result = applyOperator(result, op15, { message: errorPrefix + `[15]` });
65
+ }
66
+ if (op16) {
67
+ result = applyOperator(result, op16, { message: errorPrefix + `[16]` });
68
+ }
69
+ if (op17) {
70
+ result = applyOperator(result, op17, { message: errorPrefix + `[17]` });
71
+ }
72
+ if (op18) {
73
+ result = applyOperator(result, op18, { message: errorPrefix + `[18]` });
74
+ }
75
+ if (op19) {
76
+ result = applyOperator(result, op19, { message: errorPrefix + `[19]` });
77
+ }
78
+ const reader = result.getReader();
79
+ let cancelled = false;
80
+ (async () => {
81
+ try {
82
+ while (true) {
83
+ const { done, value } = await reader.read();
84
+ if (done)
85
+ break;
86
+ observer.next(value);
87
+ if (observer.closed) {
88
+ cancelled = true;
89
+ try {
90
+ await reader.cancel();
91
+ }
92
+ catch {
93
+ // Ignore cancellation failures while the subscription is closing.
94
+ }
95
+ break;
96
+ }
97
+ }
98
+ if (!cancelled) {
99
+ cancelled = true;
100
+ observer.complete();
101
+ }
102
+ }
103
+ catch (err) {
104
+ if (!cancelled) {
105
+ cancelled = true;
106
+ observer.error(err);
107
+ try {
108
+ await reader.cancel(err);
109
+ }
110
+ catch {
111
+ // Ignore cancellation failures while surfacing the original error.
112
+ }
113
+ }
114
+ }
115
+ finally {
116
+ try {
117
+ reader.releaseLock();
118
+ }
119
+ catch {
120
+ // Ignore release failures during cancellation.
121
+ }
122
+ }
123
+ })();
124
+ return () => {
125
+ cancelled = true;
126
+ void reader.cancel();
127
+ };
128
+ });
129
+ }
@@ -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,193 @@
1
+ import { ObservableError } from "../error.js";
2
+ /**
3
+ * Type guard to check if options is a TransformStreamOptions
4
+ *
5
+ * This checks if the options object has a 'stream' property,
6
+ * indicating it is using an existing TransformStream.
7
+ *
8
+ * @typeParam T - Input type
9
+ * @typeParam R - Output type
10
+ * @param options - The options object to check
11
+ * @returns True if options is TransformStreamOptions, false otherwise
12
+ */
13
+ export function isTransformStreamOptions(options) {
14
+ return "stream" in options;
15
+ }
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 function isTransformFunctionOptions(options) {
28
+ return "transform" in options;
29
+ }
30
+ /**
31
+ * Applies an operator to a ReadableStream, handling errors gracefully.
32
+ *
33
+ * This function attempts to apply the given operator to the input stream.
34
+ * If the operator throws an error, it injects that error into the stream
35
+ * using `injectError`, allowing downstream consumers to handle it.
36
+ *
37
+ * @param input - The ReadableStream to apply the operator to
38
+ * @param operator - The operator function to apply
39
+ * @param message - Optional message for error context
40
+ * @returns A new ReadableStream with the operator applied or an error injected
41
+ */
42
+ export function applyOperator(input,
43
+ // deno-lint-ignore no-explicit-any
44
+ operator, { message = `pipe:operator` } = {}) {
45
+ try {
46
+ const result = operator(input);
47
+ return result;
48
+ }
49
+ catch (err) {
50
+ return input.pipeThrough(injectError(err, message));
51
+ }
52
+ }
53
+ /**
54
+ * Creates a ReadableStream from an iterable or async iterable
55
+ *
56
+ * This utility function creates a ReadableStream from any iterable or async iterable,
57
+ * such as arrays, generators, or custom iterables.
58
+ *
59
+ * @typeParam T - Type of values in the iterable
60
+ * @param iterable - The iterable or async iterable to convert
61
+ * @returns A ReadableStream that emits values from the iterable
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * import { fromIterable, pipe, map } from "./helpers/mod.ts";
66
+ *
67
+ * // Create a stream from an array
68
+ * const numbers = fromIterable([1, 2, 3, 4, 5]);
69
+ *
70
+ * // Create a stream from a generator
71
+ * function* generateNumbers() {
72
+ * for (let i = 0; i < 5; i++) {
73
+ * yield i;
74
+ * }
75
+ * }
76
+ * const generated = fromIterable(generateNumbers());
77
+ *
78
+ * // Process with operators
79
+ * const result = pipe(
80
+ * numbers,
81
+ * map(x => x * 2)
82
+ * );
83
+ * ```
84
+ */
85
+ export function toStream(iterable) {
86
+ // Check if it's an async iterable
87
+ const isAsync = typeof iterable[Symbol.asyncIterator] === "function";
88
+ return new ReadableStream({
89
+ async start(controller) {
90
+ try {
91
+ if (isAsync) {
92
+ for await (const item of iterable) {
93
+ controller.enqueue(item);
94
+ }
95
+ }
96
+ else {
97
+ for (const item of iterable) {
98
+ controller.enqueue(item);
99
+ }
100
+ }
101
+ try {
102
+ controller.close();
103
+ }
104
+ catch {
105
+ // Downstream may already be closed or errored.
106
+ }
107
+ }
108
+ catch (err) {
109
+ try {
110
+ controller.enqueue(ObservableError.from(err, "toStream"));
111
+ controller.close();
112
+ }
113
+ catch {
114
+ // If downstream is already unavailable, the original failure has
115
+ // already decided the stream outcome. Do not surface a second error.
116
+ }
117
+ }
118
+ },
119
+ });
120
+ }
121
+ /**
122
+ * Creates a TransformStream that injects an error at the start and passes through all original data.
123
+ *
124
+ * ## What this does
125
+ * Think of this as creating a "tee" in your stream pipeline where an error gets injected at the
126
+ * beginning, but all your original data continues to flow through unchanged. It's like adding
127
+ * a warning sign at the start of a conveyor belt while keeping everything else moving.
128
+ *
129
+ * ## Why you need this
130
+ * When operator setup fails, you want to signal the error but not lose all your data. This creates
131
+ * a transform that does exactly that - it marks the problem but preserves your stream's content.
132
+ *
133
+ * ## How it works
134
+ * The transform immediately outputs the error when the stream starts, then passes every chunk
135
+ * from the source unchanged. Your downstream consumers see the error first, then all the data.
136
+ *
137
+ * ## When to use this
138
+ * - **Operator setup failures**: When building an operator fails but the source data is still valid
139
+ * - **Warning injection**: When you want to flag a problem but continue processing
140
+ * - **Error preservation**: When you need both error information and data preservation
141
+ *
142
+ * ## What the output looks like
143
+ * ```typescript
144
+ * // Original stream: [1, 2, 3, 4, 5]
145
+ * // After error injection: [ObservableError("setup failed"), 1, 2, 3, 4, 5]
146
+ * // The error appears first, then all original data flows through
147
+ * ```
148
+ *
149
+ * @param error The error to inject at the start of the stream
150
+ * @param context Context string for error reporting (where it happened)
151
+ *
152
+ * @returns A TransformStream that injects the error and passes through data
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * // Handle operator setup failure
157
+ * function createSafeOperator<T, R>(
158
+ * operatorBuilder: () => Operator<T, R>,
159
+ * context: string
160
+ * ): Operator<T, R | ObservableError> {
161
+ * return (source: ReadableStream<T>) => {
162
+ * try {
163
+ * return operatorBuilder()(source);
164
+ * } catch (err) {
165
+ * return source.pipeThrough(
166
+ * createErrorInjectionTransform(err, context)
167
+ * );
168
+ * }
169
+ * };
170
+ * }
171
+ * ```
172
+ *
173
+ * @example
174
+ * ```typescript
175
+ * // Add warning to stream without breaking it
176
+ * const warningStream = dataStream.pipeThrough(
177
+ * createErrorInjectionTransform(
178
+ * new Error("Data quality issue detected"),
179
+ * "data-validation"
180
+ * )
181
+ * );
182
+ *
183
+ * // Consumers will see: [Error, ...originalData]
184
+ * ```
185
+ */
186
+ export function injectError(error, context, value) {
187
+ return new TransformStream({
188
+ start(controller) {
189
+ // Inject the error as the first item in the stream
190
+ controller.enqueue(ObservableError.from(error, context, value));
191
+ },
192
+ });
193
+ }