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
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 --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 accomplish 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 to contribute via the CONTRIBUTING.md
file.
- Benjamin Lupton — Accelerating collaborative wisdom.
- Benjamin Lupton — Accelerating collaborative wisdom.
- Benjamin Lupton — view contributions
- James Gill — view contributions
- Kyle Robinson Young — view contributions
- Sean Fridman — view contributions
- Andrew Nesbitt — Software engineer and researcher
- Balsa — We're Balsa, and we're building tools for builders.
- Codecov — Empower developers with tools to improve code quality and testing.
- Poonacha Medappa
- Rob Morris
- Sentry — Real-time crash reporting for your web apps, mobile apps, and games.
- Syntax — Syntax Podcast
- Andrew Nesbitt
- Armen Mkrtchian
- Balsa
- Chad
- Codecov
- dr.dimitru
- Elliott Ditman
- entroniq
- GitHub
- Hunter Beast
- Jean-Luc Geering
- Michael Duane Mooring
- Michael Harry Scepaniak
- Mohammed Shah
- Mr. Henry
- Nermal
- Pleo
- Poonacha Medappa
- Rob Morris
- Robert de Forest
- Sentry
- ServieJS
- Skunk Team
- Syntax
- WriterJohnBuck
Unless stated otherwise all works are:
- Copyright © Benjamin Lupton
and licensed under: