Current section

Files

Jump to
gossamer src gossamer form_data.ffi.ts
Raw

src/gossamer/form_data.ffi.ts

import type * as $formData from "$/gossamer/gossamer/form_data.mjs";
import { fromArray } from "~/utils/list.ts";
import { toOption } from "~/utils/option.ts";
export type FormData$ = FormData;
export const new_: typeof $formData.new$ = () => {
return new FormData();
};
export const append: typeof $formData.append = (formData, name, value) => {
formData.append(name, value);
return formData;
};
export const append_blob: typeof $formData.append_blob = (
formData,
name,
value,
) => {
formData.append(name, value);
return formData;
};
export const append_blob_with_filename:
typeof $formData.append_blob_with_filename = (
formData,
name,
value,
filename,
) => {
formData.append(name, value, filename);
return formData;
};
export const delete_: typeof $formData.delete$ = (formData, name) => {
formData.delete(name);
return formData;
};
export const get: typeof $formData.get = (formData, name) => {
const value = formData.get(name);
return toOption(typeof value === "string" ? value : null);
};
export const get_file: typeof $formData.get_file = (formData, name) => {
const value = formData.get(name);
return toOption(value instanceof File ? value : null);
};
export const get_all: typeof $formData.get_all = (formData, name) => {
const values = formData.getAll(name);
return fromArray(
values.filter((value): value is string => typeof value === "string"),
);
};
export const get_all_files: typeof $formData.get_all_files = (
formData,
name,
) => {
const values = formData.getAll(name);
return fromArray(
values.filter((value): value is File => value instanceof File),
);
};
export const has: typeof $formData.has = (formData, name) => {
return formData.has(name);
};
export const set: typeof $formData.set = (formData, name, value) => {
formData.set(name, value);
return formData;
};
export const set_blob: typeof $formData.set_blob = (formData, name, value) => {
formData.set(name, value);
return formData;
};
export const set_blob_with_filename: typeof $formData.set_blob_with_filename = (
formData,
name,
value,
filename,
) => {
formData.set(name, value, filename);
return formData;
};
export const keys: typeof $formData.keys = (formData) => {
return fromArray(Array.from(formData.keys()));
};
export const values: typeof $formData.values = (formData) => {
return fromArray(
Array.from(formData.values()).filter(
(value): value is string => typeof value === "string",
),
);
};
export const entries: typeof $formData.entries = (formData) => {
return fromArray(
Array.from(formData.entries()).filter(
(entry): entry is [string, string] => typeof entry[1] === "string",
),
);
};
export const for_each: typeof $formData.for_each = (formData, callback) => {
formData.forEach((value, key) => {
if (typeof value === "string") {
callback(value, key);
}
});
};