exports all fs.promises + exists + mkdirp + rmrf + getFiles + getDirs functions.
be in a nodejs project
npm install @magic/fs
import fs from '@magic/fs'
const run = async () => {
await fs.mkdirp('./test_235235/dir/to/create')
console.log('dir created')
await fs.rmrf('./test_235235')
console.log('dir deleted, even though it had contents.')
}
run()
promises from fs:
access
copyFile
open
opendir
rename
truncate
rmdir
mkdir
readdir
readlink
symlink
lstat
stat
link
unlink
chmod
lchmod
lchown
chown
utimes
realpath
mkdtemp
writeFile
appendFile
readFile
exists
readDir
readfile
rmDir
// rmdir, rmDir
// readfile, readFile
// readdir, readDir
same as mkdir -p on unix
await fs.mkdirp('./path/to/dir')
same as rm -rf on unix.
will not work outside process.cwd()
await fs.rmrf('./path/to/dir')
same as fs.exists, but promisified and ready for esmodules.
get a list of directories in a directory, recursively.
import fs from '@magic/fs'
const run = async () => {
// first level directories
const directories = await fs.getDirectories(process.cwd(), false)
console.log(directories)
// first level again
const dirs = await fs.getDirectories(process.cwd(), { depth: false })
// recursive run
const deepDirectories = await fs.getDirectories(process.cwd())
console.log(deepDirectories)
// recursive run with specified depth
const deepDirectoriesDepth2 = await fs.getDirectories(process.cwd(), { depth: 2 })
console.log(deepDirectoriesDepth2)
// use /some/dir as root instead of process.cwd()
const deepDirWithRoot = await fs.getDirectories(process.cwd(), { depth: true, root: '/some/dir' })
console.log(deepDirWithRoot)
}
run()
get a list of files in a directory, recursively.
import fs from '@magic/fs'
const run = async () => {
// first level directories
const files = await fs.getFiles(process.cwd())
console.log(files)
// recursive run
const deepFiles = await fs.getFiles(process.cwd(), { depth: true })
console.log(deepFiles)
// recursive run with specified depth,
const deepFilesDepth2 = await fs.getFiles(process.cwd(), { depth: 2 })
console.log(deepFilesDepth2)
}
run()
get the file type of a file, based on extension, and defaulting to "txt"
import fs from '@magic/fs'
const fileType = fs.getFileType('html.html')
console.log(fileType, fileType === 'html')
const nonFileType = fs.getFileType()
console.log(nonFileType, nonFileType === 'txt')
first release
- bump required node version
- update dependencies
better error messages
rmrf returns true if directory does not exist.
use @magic/mime-types to export contentTypes
bump required node version to 14.2.0
rmrf: add dryRun option
update dependencies
- remove unused imports from getDirectories
- getDirectories and getFiles now accept a number as second argument.
// if a number is given instead of true/false, then this is the depth of recursion.
getFiles(directory, 2) // two levels down
- bump required node version to 14.15.4
- update dependencies
update dependencies (@magic/mime-types)
export all functions from native fs
- getDirectories, getFiles: default root to process.cwd() if first argument is an array and root is not passed
- update dependencies
update dependencies (@magic/mime-types)
update @magic/types to avoid circular dependency
add deprecation warning for calls to fs.getDirectories, fs.getFilePath and fs.getFiles that do not use an options object
update dependencies
update mime-types
update dependencies
update dependencies
- add missing @magic/fs dependency
- update dependencies
update dependencies
update dependencies
getFiles: allow files to be filtered by extension, using the .extension key of the second parameter
update dependencies
update dependencies
update dependencies
update dependencies
- update dependencies
- getFiles and getDirectories now accept maxDepth and minDepth config args
- update dependencies
- remove deprecated getFiles and getDirectories api
- add minDepth option
- add tests for [...threedot_dirs]
- update dependencies
- add jsdoc types
- update dependencies
- fix import mapping from .mjs to .js
- update types
- fs.getDirectories maxDepth will be at least 2 if noRoot is set.
- update dependencies
...