@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.
- package/LICENSE +21 -0
- package/README.md +578 -0
- package/esm/_dnt.polyfills.d.ts +20 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -0
- package/esm/_dnt.polyfills.js +12 -0
- package/esm/_spec.d.ts +260 -0
- package/esm/_spec.d.ts.map +1 -0
- package/esm/_spec.js +1 -0
- package/esm/_types.d.ts +141 -0
- package/esm/_types.d.ts.map +1 -0
- package/esm/_types.js +20 -0
- package/esm/error.d.ts +331 -0
- package/esm/error.d.ts.map +1 -0
- package/esm/error.js +408 -0
- package/esm/events.d.ts +320 -0
- package/esm/events.d.ts.map +1 -0
- package/esm/events.js +451 -0
- package/esm/helpers/_types.d.ts +188 -0
- package/esm/helpers/_types.d.ts.map +1 -0
- package/esm/helpers/_types.js +1 -0
- package/esm/helpers/mod.d.ts +90 -0
- package/esm/helpers/mod.d.ts.map +1 -0
- package/esm/helpers/mod.js +90 -0
- package/esm/helpers/operations/batch.d.ts +109 -0
- package/esm/helpers/operations/batch.d.ts.map +1 -0
- package/esm/helpers/operations/batch.js +140 -0
- package/esm/helpers/operations/combination.d.ts +162 -0
- package/esm/helpers/operations/combination.d.ts.map +1 -0
- package/esm/helpers/operations/combination.js +350 -0
- package/esm/helpers/operations/conditional.d.ts +211 -0
- package/esm/helpers/operations/conditional.d.ts.map +1 -0
- package/esm/helpers/operations/conditional.js +280 -0
- package/esm/helpers/operations/core.d.ts +198 -0
- package/esm/helpers/operations/core.d.ts.map +1 -0
- package/esm/helpers/operations/core.js +264 -0
- package/esm/helpers/operations/errors.d.ts +277 -0
- package/esm/helpers/operations/errors.d.ts.map +1 -0
- package/esm/helpers/operations/errors.js +378 -0
- package/esm/helpers/operations/mod.d.ts +26 -0
- package/esm/helpers/operations/mod.d.ts.map +1 -0
- package/esm/helpers/operations/mod.js +25 -0
- package/esm/helpers/operations/timing.d.ts +206 -0
- package/esm/helpers/operations/timing.d.ts.map +1 -0
- package/esm/helpers/operations/timing.js +457 -0
- package/esm/helpers/operators.d.ts +520 -0
- package/esm/helpers/operators.d.ts.map +1 -0
- package/esm/helpers/operators.js +563 -0
- package/esm/helpers/pipe.d.ts +118 -0
- package/esm/helpers/pipe.d.ts.map +1 -0
- package/esm/helpers/pipe.js +129 -0
- package/esm/helpers/utils.d.ts +142 -0
- package/esm/helpers/utils.d.ts.map +1 -0
- package/esm/helpers/utils.js +193 -0
- package/esm/mod.d.ts +863 -0
- package/esm/mod.d.ts.map +1 -0
- package/esm/mod.js +861 -0
- package/esm/observable.d.ts +1610 -0
- package/esm/observable.d.ts.map +1 -0
- package/esm/observable.js +1970 -0
- package/esm/package.json +3 -0
- package/esm/queue.d.ts +201 -0
- package/esm/queue.d.ts.map +1 -0
- package/esm/queue.js +273 -0
- package/esm/symbol.d.ts +60 -0
- package/esm/symbol.d.ts.map +1 -0
- package/esm/symbol.js +132 -0
- package/package.json +96 -0
- package/script/_dnt.polyfills.d.ts +20 -0
- package/script/_dnt.polyfills.d.ts.map +1 -0
- package/script/_dnt.polyfills.js +13 -0
- package/script/_spec.d.ts +260 -0
- package/script/_spec.d.ts.map +1 -0
- package/script/_spec.js +2 -0
- package/script/_types.d.ts +141 -0
- package/script/_types.d.ts.map +1 -0
- package/script/_types.js +22 -0
- package/script/error.d.ts +331 -0
- package/script/error.d.ts.map +1 -0
- package/script/error.js +414 -0
- package/script/events.d.ts +320 -0
- package/script/events.d.ts.map +1 -0
- package/script/events.js +458 -0
- package/script/helpers/_types.d.ts +188 -0
- package/script/helpers/_types.d.ts.map +1 -0
- package/script/helpers/_types.js +2 -0
- package/script/helpers/mod.d.ts +90 -0
- package/script/helpers/mod.d.ts.map +1 -0
- package/script/helpers/mod.js +106 -0
- package/script/helpers/operations/batch.d.ts +109 -0
- package/script/helpers/operations/batch.d.ts.map +1 -0
- package/script/helpers/operations/batch.js +144 -0
- package/script/helpers/operations/combination.d.ts +162 -0
- package/script/helpers/operations/combination.d.ts.map +1 -0
- package/script/helpers/operations/combination.js +355 -0
- package/script/helpers/operations/conditional.d.ts +211 -0
- package/script/helpers/operations/conditional.d.ts.map +1 -0
- package/script/helpers/operations/conditional.js +286 -0
- package/script/helpers/operations/core.d.ts +198 -0
- package/script/helpers/operations/core.d.ts.map +1 -0
- package/script/helpers/operations/core.js +272 -0
- package/script/helpers/operations/errors.d.ts +277 -0
- package/script/helpers/operations/errors.d.ts.map +1 -0
- package/script/helpers/operations/errors.js +387 -0
- package/script/helpers/operations/mod.d.ts +26 -0
- package/script/helpers/operations/mod.d.ts.map +1 -0
- package/script/helpers/operations/mod.js +41 -0
- package/script/helpers/operations/timing.d.ts +206 -0
- package/script/helpers/operations/timing.d.ts.map +1 -0
- package/script/helpers/operations/timing.js +464 -0
- package/script/helpers/operators.d.ts +520 -0
- package/script/helpers/operators.d.ts.map +1 -0
- package/script/helpers/operators.js +570 -0
- package/script/helpers/pipe.d.ts +118 -0
- package/script/helpers/pipe.d.ts.map +1 -0
- package/script/helpers/pipe.js +132 -0
- package/script/helpers/utils.d.ts +142 -0
- package/script/helpers/utils.d.ts.map +1 -0
- package/script/helpers/utils.js +200 -0
- package/script/mod.d.ts +863 -0
- package/script/mod.d.ts.map +1 -0
- package/script/mod.js +877 -0
- package/script/observable.d.ts +1610 -0
- package/script/observable.d.ts.map +1 -0
- package/script/observable.js +1984 -0
- package/script/package.json +3 -0
- package/script/queue.d.ts +201 -0
- package/script/queue.d.ts.map +1 -0
- package/script/queue.js +286 -0
- package/script/symbol.d.ts +60 -0
- package/script/symbol.d.ts.map +1 -0
- 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
|
+
}
|