Current section

Files

Jump to
gossamer src gossamer headers.ffi.mjs
Raw

src/gossamer/headers.ffi.mjs

// src/utils/list.ts
import {
List$Empty,
List$isNonEmpty,
List$NonEmpty,
List$NonEmpty$first,
List$NonEmpty$rest
} from "../../prelude.mjs";
function fromArray(array) {
let list = List$Empty();
for (let i = array.length - 1; i >= 0; --i) {
list = List$NonEmpty(array[i], list);
}
return list;
}
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/option.ts
import {
Option$None,
Option$Some
} from "../../gleam_stdlib/gleam/option.mjs";
function toOption(value) {
return value === null || value === void 0 ? Option$None() : Option$Some(value);
}
// src/gossamer/headers.ffi.ts
var new_ = () => {
return new Headers();
};
var from_pairs = (pairs) => {
return new Headers(toArray(pairs));
};
var append = (headers, name, value) => {
headers.append(name, value);
return headers;
};
var delete_ = (headers, name) => {
headers.delete(name);
return headers;
};
var get = (headers, name) => {
return toOption(headers.get(name));
};
var has = (headers, name) => {
return headers.has(name);
};
var set = (headers, name, value) => {
headers.set(name, value);
return headers;
};
var get_set_cookie = (headers) => {
return fromArray(headers.getSetCookie());
};
var keys = (headers) => {
return fromArray(Array.from(headers.keys()));
};
var values = (headers) => {
return fromArray(Array.from(headers.values()));
};
var entries = (headers) => {
return fromArray(Array.from(headers.entries()));
};
var for_each = (headers, callback) => {
headers.forEach((value, key) => callback(value, key));
};
export {
append,
delete_,
entries,
for_each,
from_pairs,
get,
get_set_cookie,
has,
keys,
new_,
set,
values
};