Safe FS
Stop getting EMFILE errors! Open only as many files as the operating system supports.
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 itappendFile(path, data, options?, next)
- ensure the full path exists before writing to itmkdir(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
Alternatives
You should use these instead, which use and provide modern APIs while providing brilliant ecosystem support:
- @bevry/fs-accessible
- @bevry/fs-executable
- @bevry/fs-list
- @bevry/fs-mkdirp
- @bevry/fs-read
- @bevry/fs-readable
- @bevry/fs-remove
- @bevry/fs-rmdir
- @bevry/fs-unlink
- @bevry/fs-write
- @bevry/fs-writable
Install
npm
- Install:
npm install --save safefs
- Import:
import * as pkg from ('safefs')
- Require:
const pkg = require('safefs')
Editions
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
TypeScript
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
}
}
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?
Contributors
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.
License
Unless stated otherwise all works are:
- Copyright © 2013+ Bevry Pty Ltd
- Copyright © 2011-2012 Benjamin Lupton
and licensed under: