node package manager

safefs

Safe FS

Travis CI Build Status NPM version NPM downloads Dependency Status Dev Dependency Status
Slack community badge Patreon donate button Gratipay donate button Flattr donate button PayPal donate button Bitcoin donate button Wishlist browse button

Stop getting EMFILE errors! Open only as many files as the operating system supports.

Install

NPM

  • Install: npm install --save safefs
  • Module: require('safefs')
  • Editions

    This package is published with the following editions:

    • safefs aliases safefs/index.js which uses Editions to automatically select the correct edition for the consumers environment
    • safefs/source/index.js is Source + ESNext + Require
    • safefs/es2015/index.js is Babel Compiled + ES2015 + Require

    Older environments may need Babel's Polyfill or something similar.

    Usage

    var safefs = require('safefs')

    SafeFS uses graceful-fs to wrap all of the standard file system methods to avoid EMFILE errors among other problems.

    On-top of graceful-fs, SafeFS also adds additional wrapping on the following methods:

    • writeFile(path, data, options?, next) - ensure the full path exists before writing to it
    • appendFile(path, data, options?, next) - ensure the full path exists before writing to it
    • mkdir(path, mode?, next) - mode defaults to 0o777 & (~process.umask())
    • unlink(path, next) - checks if the file exists before removing it

    SafeFS also define these additional methods:

    • ensurePath(path, options, next) - ensure the full path exists, equivalent to unix's mdir -p path
    • getParentPathSync(path) - returns the parent directory of the path

    History

    Discover the release history by heading on over to the HISTORY.md file.

    Contribute

    Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

    Backers

    Maintainers

    These amazing people are maintaining this project:

    Sponsors

    No sponsors yet! Will you be the first?

    Patreon donate button Gratipay donate button Flattr donate button PayPal donate button Bitcoin donate button Wishlist browse button

    Contributors

    These amazing people have contributed code to this project:

    Discover how you can contribute by heading on over to the CONTRIBUTING.md file.

    License

    Unless stated otherwise all works are:

    and licensed under: