Current section

Files

Jump to
gossamer src gossamer compression_stream.ffi.mjs
Raw

src/gossamer/compression_stream.ffi.mjs

// src/gossamer/compression_format.ts
import * as $compressionFormat from "./compression_format.mjs";
function toCompressionFormat(format) {
if ($compressionFormat.CompressionFormat$isDeflate(format)) return "deflate";
if ($compressionFormat.CompressionFormat$isDeflateRaw(format)) {
return "deflate-raw";
}
if ($compressionFormat.CompressionFormat$isGzip(format)) return "gzip";
return "brotli";
}
// src/utils/result.ts
import { Result$Error, Result$Ok } from "../../prelude.mjs";
function toResult(value) {
return value === null || value === void 0 ? Result$Error(void 0) : Result$Ok(value);
}
toResult.fromThrows = function(throws) {
try {
return Result$Ok(throws());
} catch (error) {
return Result$Error(
error instanceof Error ? error.message : String(error)
);
}
};
toResult.fromPromise = function(promise) {
return promise.then(
(value) => Result$Ok(value),
(error) => Result$Error(error instanceof Error ? error.message : String(error))
);
};
// src/gossamer/compression_stream.ffi.ts
var new_ = (format) => {
return toResult.fromThrows(
() => new CompressionStream(toCompressionFormat(format))
);
};
var readable = (stream) => {
return stream.readable;
};
var writable = (stream) => {
return stream.writable;
};
export {
new_,
readable,
writable
};