1.0.0 • Published 6 years ago

write-files-atomic v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
6 years ago

write-files-atomic

Write many files atomically

  • Creates temporary files with file contents
  • Moves them all at once using rename()
  • Automatically cleans up after itself
  • Optimized to be as fast as possible
  • Doesn't break file watchers
  • Doesn't swallow errors
  • Includes Flow types

Install

yarn add write-files-atomic

Usage

const writeFilesAtomic = require('write-files-atomic');

await writeFilesAtomic([
  { filePath: './foo.txt', fileContents: '...foo...' },
  { filePath: './bar.txt', fileContents: '...bar...' },
  { filePath: './baz.txt', fileContents: '...baz...' },
]);

API

type Files = Array<{
  filePath: string,
  fileContents: string | Buffer,
  encoding?: string, // default 'utf8'
  mode?: number,
  chown?: { uid: number, gid: number }, // default `fs.stat` of existing file
}>;

declare function writeFilesAtomic(files: Files): Promise<void>;