Skip to main content

Built and signed on GitHub Actions

Library to write out the contents of a JavaScript object structure to the file system in a granular directory structure.

This package works with Node.js, Deno, Bun
This package works with Node.js
This package works with Deno
This package works with Bun
JSR Score
100%
Published
3 months ago (0.1.4)
Package root>platform_node.ts
import type { DirectoryCreatorOptions, WriteBinaryToFileOptions, WriteTextToFileOptions, } from "./interfaces.ts"; import * as fsPromises from "node:fs/promises"; import type { Abortable } from "node:events"; import type { Platform } from "./platform.ts"; function nodeWriteTextToFile( path: URL, contents: string, options?: Readonly<WriteTextToFileOptions>, ): Promise<void> { return fsPromises.writeFile(path, contents, { encoding: "utf-8", signal: (options as Abortable | undefined)?.signal, }); } function nodeWriteBinaryToFile( path: URL, contents: Readonly<Uint8Array>, options?: Readonly<WriteBinaryToFileOptions>, ): Promise<void> { return fsPromises.writeFile(path, contents, { encoding: null, signal: (options as Abortable | undefined)?.signal, }); } async function nodeCreateDirectory( directoryUrl: URL, options?: DirectoryCreatorOptions, ): Promise<void> { await fsPromises.mkdir(directoryUrl, options); } export function makeNodePlatform(): Platform { return Object.freeze({ fileWriter: { name: "fs.writeFile", writeTextToFile: nodeWriteTextToFile, writeBinaryToFile: nodeWriteBinaryToFile, }, directoryCreator: { name: "fs.mkdir", createDirectory: nodeCreateDirectory, }, }); }