Current section
Files
Jump to
Current section
Files
src/gossamer/transform_stream.ffi.mjs
// src/gossamer/transform_stream/transformer.ts
import * as $transformer from "./transform_stream/transformer.mjs";
function toTransformer(options) {
const result = {};
for (const option of options) {
if ($transformer.Transformer$isStart(option)) {
result.start = $transformer.Transformer$Start$0(option);
} else if ($transformer.Transformer$isTransform(option)) {
result.transform = $transformer.Transformer$Transform$0(option);
} else if ($transformer.Transformer$isFlush(option)) {
result.flush = $transformer.Transformer$Flush$0(option);
} else if ($transformer.Transformer$isCancel(option)) {
result.cancel = $transformer.Transformer$Cancel$0(option);
}
}
return result;
}
// src/utils/list.ts
import {
List$Empty,
List$isNonEmpty,
List$NonEmpty,
List$NonEmpty$first,
List$NonEmpty$rest
} from "../../prelude.mjs";
function toArray(list) {
const array = [];
let current = list;
while (List$isNonEmpty(current)) {
array.push(List$NonEmpty$first(current));
current = List$NonEmpty$rest(current);
}
return array;
}
// src/gossamer/transform_stream.ffi.ts
var new_ = (transformer) => {
return new TransformStream(toTransformer(toArray(transformer)));
};
var readable = (stream) => {
return stream.readable;
};
var writable = (stream) => {
return stream.writable;
};
export {
new_,
readable,
writable
};