Nitrogenous Polymorphic Molecule

    normalized-fs
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0-alpha.1 • Public • Published

    normalized-fs

    GitHub license Build Status Coverage Dependencies

    A drop-in replacement for fs that aims to normalize the behavior across different platforms and environments, and to make filesystem access more resilient to errors.

    Improvements over fs module

    • Queues up open and readdir calls, and retries them once something closes if there is an EMFILE error from too many file descriptors.
    • Fixes lchmod for Node versions prior to 0.6.2.
    • Implements fs.lutimes if possible. Otherwise it becomes a noop.
    • Ignores EINVAL and EPERM errors in chown, fchown or lchown if the user isn't root.
    • Makes lchmod and lchown become noops, if not available.
    • Retries reading a file if read results in EAGAIN error.

    Installation

    npm

    $ npm install normalized-fs

    yarn

    $ yarn add normalized-fs

    Usage

    // import just like with fs
    import fs from 'normalized-fs';
     
    // now go and do stuff with it...
    fs.readFileSync('some-file-or-whatever');

    Global patching

    If you want to patch the global fs module (or any other fs-like module) you can do this:

    NOTE: This should only ever be done at the top-level application layer, in order to delay on EMFILE errors from any fs-using dependencies. You should not do this in a library, because it can cause unexpected delays in other parts of the program.

    import realFs from 'fs';
    import nfs from 'normalized-fs';
    nfs.normalize(realFs);

    Credits

    Big thanks to isaacs who created graceful-fs which this package is based upon.

    Install

    npm i normalized-fs

    DownloadsWeekly Downloads

    1

    Version

    1.0.0-alpha.1

    License

    ISC

    Unpacked Size

    355 kB

    Total Files

    68

    Last publish

    Collaborators

    • mekwall