taglib-wasm
Version:
TagLib for TypeScript platforms: Deno, Node.js, Bun, Electron, browsers, and Cloudflare Workers
43 lines (42 loc) • 1.07 kB
JavaScript
import { EnvironmentError, FileOperationError } from "../errors.js";
async function writeFileData(path, data) {
try {
if (typeof globalThis.Deno !== "undefined") {
await globalThis.Deno.writeFile(path, data);
return;
}
if (typeof globalThis.process !== "undefined" && globalThis.process.versions?.node) {
const { writeFile } = await import("fs/promises");
await writeFile(path, data);
return;
}
if (typeof globalThis.Bun !== "undefined") {
await globalThis.Bun.write(path, data);
return;
}
} catch (error) {
throw new FileOperationError(
"write",
error.message,
path
);
}
let env;
if (typeof globalThis.Deno !== "undefined") {
env = "Deno";
} else if (typeof globalThis.process !== "undefined") {
env = "Node.js";
} else if (typeof globalThis.Bun !== "undefined") {
env = "Bun";
} else {
env = "Browser";
}
throw new EnvironmentError(
env,
"does not support file path writing",
"filesystem access"
);
}
export {
writeFileData
};