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
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);- I needed an API that returns Promises
- provides smart defaults i.e. suitable flags for
open,readandwrite, see fildes/issues/1 - creates a directories if flag is
w,w+,aora+ openis 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 callingfs.open(). Doing so introduces a race condition since other processes may change the file's state between the two calls. Instead, user code should callfs.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)
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);
});
}
});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);
});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);npm i --save fildesfildes with support for Node.js 4.x can be found here https://github.com/thisconnect/fildes/tree/v1.x