Current section

Files

Jump to
gossamer src gossamer request.ffi.mjs
Raw

src/gossamer/request.ffi.mjs

// src/gossamer/request_init.ts
import * as $requestInit from "./request_init.mjs";
function toRequestInit(options) {
const result = {};
for (const option of options) {
if ($requestInit.RequestInit$isMethod(option)) {
result.method = $requestInit.RequestInit$Method$0(option);
} else if ($requestInit.RequestInit$isHeaders(option)) {
result.headers = $requestInit.RequestInit$Headers$0(option);
} else if ($requestInit.RequestInit$isBody(option)) {
result.body = $requestInit.RequestInit$Body$0(option);
} else if ($requestInit.RequestInit$isRedirect(option)) {
result.redirect = $requestInit.RequestInit$Redirect$0(
option
);
} else if ($requestInit.RequestInit$isSignal(option)) {
result.signal = $requestInit.RequestInit$Signal$0(option);
} else if ($requestInit.RequestInit$isReferrer(option)) {
result.referrer = $requestInit.RequestInit$Referrer$0(option);
} else if ($requestInit.RequestInit$isKeepalive(option)) {
result.keepalive = $requestInit.RequestInit$Keepalive$0(option);
} else if ($requestInit.RequestInit$isIntegrity(option)) {
result.integrity = $requestInit.RequestInit$Integrity$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/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/request.ffi.ts
var new_ = (input) => {
return toResult.fromThrows(() => new Request(input));
};
var new_with_init = (input, init) => {
return toResult.fromThrows(
() => new Request(input, toRequestInit(toArray(init)))
);
};
var method = (request) => request.method;
var url = (request) => request.url;
var headers = (request) => request.headers;
var cache = (request) => request.cache;
var credentials = (request) => {
return request.credentials;
};
var destination = (request) => {
return request.destination;
};
var redirect = (request) => request.redirect;
var signal = (request) => request.signal;
var referrer = (request) => request.referrer;
var referrer_policy = (request) => {
return request.referrerPolicy;
};
var mode = (request) => request.mode;
var is_keepalive = (request) => {
return request.keepalive;
};
var integrity = (request) => {
return request.integrity;
};
var clone = (request) => request.clone();
var body = (request) => {
return toResult(request.body);
};
var is_body_used = (request) => {
return request.bodyUsed;
};
var array_buffer = (request) => {
return toResult.fromPromise(request.arrayBuffer());
};
var bytes = (request) => {
return toResult.fromPromise(request.bytes());
};
var json = (request) => {
return toResult.fromPromise(request.json());
};
var text = (request) => {
return toResult.fromPromise(request.text());
};
export {
array_buffer,
body,
bytes,
cache,
clone,
credentials,
destination,
headers,
integrity,
is_body_used,
is_keepalive,
json,
method,
mode,
new_,
new_with_init,
redirect,
referrer,
referrer_policy,
signal,
text,
url
};