* Upgrade jsonfile
Fixes#745
* Test from main entry point
* Make outputJson() mutation-proof
Fixes#702
* Update outputJsonSync() to match async implementation
* BREAKING: Use internal fork of make-dir for mkdirs implementation
Resolves#619
Everything should work similarly to how it did before; except that
we no longer return a file path on success (to match fs.mkdir).
Also, errors may be different.
* Hopefully fix Windows tests
- Error codes are different
- Match fs.mkdir behavior on Windows when creating root
* Port https://github.com/sindresorhus/make-dir/pull/24
* Add comment for clarity
* Use at-least-node for version sniffing
* Consistent error codes across OSes
* Allow different error codes on different Node versions
* Refactor internal getStats() util
Fixes#762
* Proper promise tests for copy()
Our hacky tests don't play well with multiple layers of
callback/promise switching
* Simplify internal checkParentPaths()
* Port improvments to sync methods
* BREAKING: Drop old Node support, require v10+
Update CI configs
* Remove references and test fencing for old Node versions
* Use object spread properties
* Use octal literal notation
* Use optional catch bindings
* Add promise support for fs.writev()
* Add promise support for fs.opendir()
Sort array to match Node docs
* Fix tests for fs.writev()
* Fix requested changes
* Check createFileSync gives clear error if node in directory tree is a file
* Make error code check work in Node.js 6
* Throw ENOTDIR error when dir doesn't exist
* Add test for createFile
* Throw ENOTDIR error when dir doesn't exist for makeFile async
* Make stat call on parent directory instead of first checking exists
Co-authored-by: Luke Childs <lukechilds123@gmail.com>
I have fixed the following error.
```
node-fs-extra/lib/ensure/symlink-paths.js:37:9: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:38:9: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/ensure/symlink-paths.js:48:11: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:49:11: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/ensure/symlink-paths.js:58:13: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:59:13: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/ensure/symlink-paths.js:73:7: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:74:7: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/ensure/symlink-paths.js:82:9: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:83:9: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/ensure/symlink-paths.js:89:9: Unnecessarily quoted property 'toCwd' found.
node-fs-extra/lib/ensure/symlink-paths.js:90:9: Unnecessarily quoted property 'toDst' found.
node-fs-extra/lib/mkdirs/__tests__/clobber.test.js:22:18: There should be no space after '['.
node-fs-extra/lib/mkdirs/__tests__/clobber.test.js:22:29: There should be no space before ']'.
node-fs-extra/lib/mkdirs/__tests__/race.test.js:24:18: There should be no space after '['.
node-fs-extra/lib/mkdirs/__tests__/race.test.js:24:29: There should be no space before ']'.
```
* Remove secure-random from dev-deps (#610)
* fix ensureDir() doc
* moveSync: refactor to use renameSync
* copy*(): fix copying bind-mounted directories (#618)
* copy*(): fix copying bind-mounted dirs
* copy*(): fix case-insensitive-paths tests
* copy*(): refactor to check paths more efficiently
* destructure stats object after checking err
* move*(): check paths before moving
* move*(): add case-insensitive paths test
* remove unnecessary done callback from test
* copy*(): add new option checkPathsBeforeCopying
* update copy*() docs to include checkPathsBeforeCopying
* some reformatting
* copy*(): use fs.stat with bigint option
* move*(): refactor to use the internal stat functions
* move*(): add test for prevent moving identical
* disable graceful-fs in copy and move tests
* fix parsing node version
* tiny reformat
* update copy*() docs
* refactor parsing node version
* use semver to parse node version in tests
* rewrite move to use fs.rename
* add old tests
* use strictEqual for error message assertion
* refactor move, remove comments
* fix move when overwrite is true and dest exists
* remove unnecessary checking of EPERM error