1.0.6 • Published 16 days ago

@alwatr/node-fs v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
16 days ago

Node FS

Enhanced file system operations in Node.js with asynchronous queue to prevent parallel writes.

Installation

yarn add @alwatr/node-fs

Features

  • Checks if a directory exists. If it doesn't, it creates the directory and all necessary subdirectories.
  • Before writing a file successfully, first writes it to a temporary path (path.tmp).
  • If a file already exists, renames and keeps the existing file at a backup path (path.bak).
  • If a write operation fails, the original file remains unchanged.
  • Includes readJson and writeJson functions that automatically parse and stringify JSON data.
  • Supports both synchronous and asynchronous read/write operations.
  • An asynchronous queue is used to prevent simultaneous write operations.
  • Fully written in TypeScript, includes type definitions.
  • Separate builds are provided for ESModule and CommonJS.
  • Zero dependencies, except for the nanolib library.
  • Includes a beautiful log feature, which uses the logger package from nanolib.

Usage

import {writeJson} from '@alwatr/node-fs';

const path = 'file.json';
await writeJson(path, {a: 1}); // wait to finish
writeJson(path, {a: 2}); // asynchronous write in queue
writeJson(path, {a: 3}); // asynchronous write in queue

const data = await readJson(path); // automatically wait for the queue to finish
console.log(data.a); // 3