Ready to take your JavaScript development to the next level? Meet npm Enterprise - the ultimate in enterprise JavaScript. Learn more »

fildes

2.1.0 • Public • Published

fildes

Build Status Build Status Coverage Status Dependencies MIT NPM Version

Provides native promises for all file system methods involving file descriptors (FD), basically manages fs.open for you.

file descriptor (FD, less frequently fildes)

en.wikipedia.org/wiki/File_descriptor

Usage

fildes always return a new Promise!

const { write } = require('fildes');
 
write('./path/to/file.txt', 'The quick green fix')
  .then(() => console.log('done!'))
  .catch(console.error);

Why?

  • I needed an API that returns Promises
  • provides smart defaults i.e. suitable flags for open, read and write, see fildes/issues/1
  • creates a directories if flag is w, w+, a or a+
  • open is optional and useful for keeping the fd for multiple operations
  • uses no magic
  • some very popular node modules use fs.exists() which is deprecated…

fs.exists() should not be used to check if a file exists before calling fs.open(). Doing so introduces a race condition since other processes may change the file's state between the two calls. Instead, user code should call fs.open() directly and handle the error raised if the file is non-existent.

fs.exists Stability: 0 - Deprecated (Node.js v5.1.0 File System API)

Bad (NOT RECOMMENDED)
fs.exists('myfile', (exists) => {
  if (exists) {
    console.error('myfile already exists');
  } else {
    fs.open('myfile', 'wx', (err, fd) => {
      if (err) throw err;
      fs.write(fd, 'Hello', callback);
    });
  }
});
Good (RECOMMENDED)
fs.open('myfile', 'wx', (err, fd) => {
  if (err) {
    if (err.code === 'EEXIST') {
      console.error('myfile already exists');
      return;
    }
 
    throw err;
  }
 
  fs.write(fd, 'Hello', callback);
});
Using fildes
const { open, write, close } = require('fildes');
 
open('myfile', { flag: 'wx' })
.then(fd => {
  return write(fd, 'Hello')
  .then(() => close(fd));
})
.catch(console.error);

This is the same as:

const { write } = require('fildes');
 
write('myfile', 'Hello', { flag: 'wx' })
.catch(console.error);

Install

npm i --save fildes

fildes with support for Node.js 4.x can be found here https://github.com/thisconnect/fildes/tree/v1.x

API

Examples

install

npm i fildes

Downloadsweekly downloads

490

version

2.1.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability