Skip to content

File

JSTime.js has fast paths for common use cases that make Web APIs live up to the performance demands of servers and CLIs.

JSTime.file(path) returns a Blob that represents a lazily-loaded file.

When you pass a file blob to JSTime.write, JSTime automatically uses a faster system call:

const blob = JSTime.file("input.txt");
await JSTime.write("output.txt", blob);

On Linux, this uses the copy_file_range syscall and on macOS, this becomes clonefile (or fcopyfile).

JSTime.write also supports Response objects. It automatically converts to a Blob.

// Eventually, this will stream the response to disk but today it buffers
await JSTime.write("index.html", await fetch("https://example.com"));