Current section

Files

Jump to
gossamer src gossamer file.ffi.mjs
Raw

src/gossamer/file.ffi.mjs

// src/gossamer/file.ffi.ts
import * as $file from "./file.mjs";
import { toArray } from "../utils/list.ffi.mjs";
import { toResult } from "../utils/result.ffi.mjs";
var to_fields = (file) => {
return $file.Fields$Fields(
file.name,
file.lastModified,
file.size,
file.type
);
};
function toFileOptions(options) {
const result = {};
for (const option of options) {
if ($file.FileOption$isType(option)) {
result.type = $file.FileOption$Type$0(option);
} else if ($file.FileOption$isLastModified(option)) {
result.lastModified = $file.FileOption$LastModified$0(option);
}
}
return result;
}
var from_strings = (parts, name2) => {
return new File(toArray(parts), name2);
};
var from_strings_with = (parts, name2, options) => {
return new File(toArray(parts), name2, toFileOptions(toArray(options)));
};
var from_blob = (blob, name2) => {
return new File([blob], name2);
};
var from_blob_with = (blob, name2, options) => {
return new File([blob], name2, toFileOptions(toArray(options)));
};
var name = (file) => {
return file.name;
};
var last_modified = (file) => {
return file.lastModified;
};
var to_blob = (file) => {
return file;
};
var size = (file) => {
return file.size;
};
var type_ = (file) => {
return file.type;
};
var array_buffer = (file) => {
return toResult.fromPromise(file.arrayBuffer());
};
var bytes = (file) => {
return toResult.fromPromise(file.bytes());
};
var slice = (file, start, end) => {
return file.slice(start, end);
};
var slice_with_type = (file, start, end, contentType) => {
return file.slice(start, end, contentType);
};
var stream = (file) => {
return file.stream();
};
var text = (file) => {
return toResult.fromPromise(file.text());
};
export {
array_buffer,
bytes,
from_blob,
from_blob_with,
from_strings,
from_strings_with,
last_modified,
name,
size,
slice,
slice_with_type,
stream,
text,
to_blob,
to_fields,
type_
};