Stop getting EMFILE errors! Open only as many files as the operating system supports.
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 to0o777 & (~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'smdir -p path
-
getParentPathSync(path)
- returns the parent directory of the path
If you want promises and a non-conflicting API, use @bevry/file.
- Install:
npm install --save safefs
- Import:
import * as pkg from ('safefs')
- Require:
const pkg = require('safefs')
This package is published with the following editions:
-
safefs
aliasessafefs/source/index.js
-
safefs/source/index.js
is ESNext source code for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules
This project provides its type information via inline JSDoc Comments. To make use of this in TypeScript, set your maxNodeModuleJsDepth
compiler option to 5
or thereabouts. You can accomlish this via your tsconfig.json
file like so:
{
"compilerOptions": {
"maxNodeModuleJsDepth": 5
}
}
Discover the release history by heading on over to the HISTORY.md
file.
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
These amazing people are maintaining this project:
No sponsors yet! Will you be the first?
These amazing people have contributed code to this project:
- Benjamin Lupton — view contributions
- James Gill — view contributions
- Kyle Robinson Young — view contributions
- Sean Fridman — view contributions
Discover how you can contribute by heading on over to the CONTRIBUTING.md
file.
Unless stated otherwise all works are:
- Copyright © 2013+ Bevry Pty Ltd
- Copyright © 2011-2012 Benjamin Lupton
and licensed under: