UNPKG

fs-extra-promise

Version:

Node file system library and fs-extra module promisified with bluebird

90 lines (56 loc) 3.3 kB
# fs-extra-promise.js # Node file system library and fs-extra module promisified with bluebird ## Current status [![NPM version](https://img.shields.io/npm/v/fs-extra-promise.svg)](https://www.npmjs.com/package/fs-extra-promise) [![Build Status](https://img.shields.io/travis/overlookmotel/fs-extra-promise/master.svg)](http://travis-ci.org/overlookmotel/fs-extra-promise) [![Dependency Status](https://img.shields.io/david/overlookmotel/fs-extra-promise.svg)](https://david-dm.org/overlookmotel/fs-extra-promise) [![Dev dependency Status](https://img.shields.io/david/dev/overlookmotel/fs-extra-promise.svg)](https://david-dm.org/overlookmotel/fs-extra-promise) [![Coverage Status](https://img.shields.io/coveralls/overlookmotel/fs-extra-promise/master.svg)](https://coveralls.io/r/overlookmotel/fs-extra-promise) API is stable. No tests at present but it seems to work fine! ## Usage This module is a drop-in replacement for the [native node file system module](http://nodejs.org/api/fs.html) and the augmented [fs-extra](https://www.npmjs.org/package/fs-extra) module. Additionally, it creates promisified versions of all `fs`'s and `fs-extra`'s async methods, using [bluebird](https://www.npmjs.org/package/bluebird). These methods are named the same as the original `fs`/`fs-extra` methods with `'Async'` added to the end of the method names. So instead of: ```js var fs = require('fs'); fs.readFile(path, function(err, data) { console.log(data); }); ``` You can now: ```js var fs = require('fs-extra-promise'); fs.readFileAsync(path).then(function(data) { console.log(data); }); ``` All original `fs` and `fs-extra` methods are included unmodified. ### `isDirectory()` methods For convenience, additional methods `isDirectory()`, `isDirectorySync()` and `isDirectoryAsync()` are provided. These are are shortcuts for doing `fs.stat()` followed by running `isDirectory()` on the result returned by `stat()`. ### `usePromise()` method Creates a new instance of `fs-extra-promise`, which uses the Promise implementation provided. ```js var Bluebird = require('bluebird'); var fs = require('fs-extra-promise').usePromise(Bluebird); // now use `fs-extra-promise` in the usual way var promise = fs.readFileAsync(path); console.log(promise instanceof Bluebird); // true ``` This can be useful for: * using a different version of [bluebird](https://www.npmjs.com/package/bluebird) * using a Promise implementation that supports `cls` * using an augmented version of Bluebird like [bluebird-extra](https://www.npmjs.org/package/bluebird-extra) ### `useFs()` method Creates a new instance of `fs-extra-promise`, promisifying the provide version of [fs-extra](https://www.npmjs.org/package/fs-extra). Most useful if you want to use a specific version of [fs-extra](https://www.npmjs.org/package/fs-extra). ```js var fs = require('fs-extra-promise').useFs(require('fs-extra')); ``` ## Tests Use `npm test` to run the tests. Use `npm run cover` to check coverage. There aren't any tests at present, except for running jshint on the code. ## Changelog See [changelog.md](https://github.com/overlookmotel/fs-extra-promise/blob/master/changelog.md) ## Issues If you discover a bug, please raise an issue on Github. https://github.com/overlookmotel/fs-extra-promise/issues