Filesystem methods as promises, with optional fs-extra and fs-graceful dependencies


Proxies all async fs methods exposing them as ES 2015 (ES6) compatible promises.

Passes all sync methods through as values.

Also exposes to graceful-fs and/or fs-extra methods if they are installed.

Uses any-promise to load preferred Promise implementation.

var fsp = require('fs-promise');
fsp.writeFile(file('hello1'), 'hello world')
    return fsp.readFile(file('hello1'), {encoding:'utf8'});

Attempts to load libraries in the following order. The first successful require will be proxied to a Promise based implementation.

Detects a Promise implementation using any-promise. If you have a preferred implementation, or are working in an environment without a global implementation, you must explicitly register a Promise implementation and it will be used. See any-promise for details.

Typical installation:

$ npm install --save fs-extra
$ npm install --save fs-promise

Note that fs-extra depends on graceful-fs, so you would get the benefits of both libraries.