- Changed path resolution to be more efficient and faster by internal functions (
resolveMount/resolve) instead ofrealpathfrom the Node.js compatibility layer - Fixed incorrect behavior in read when passing
0forposition - Fixed passthrough needing
__promisify__/native - Fixed incorrect
Dirent.parentPathreturned byreaddir - The VFS now compares file systems based on their UUID instead of the object identity
- For example if you create two instances of the same
SingleBufferbackend, the VFS treats them as equal and you won't getEXDEV
- For example if you create two instances of the same
- The Node.js compatibility code and the VFS code have been organized into two different source directories:
nodeandvfs. This is more readable and maintainable. - VFS <-> Backend error handling is now handled in one place (
withExceptionContext) and returned byresolveMountfor convience- For contributors: this means calling
FileSystemmethods likefs.touch(...)will automatically do all the path conversion. You no longer need to wrap these calls withwrapor atry/catch
- For contributors: this means calling
- Added missing contexts.ts export to internal/index.js
- Added a proper
NodeFStype for thenode:fsAPI without node-specific bits like__promisiy__ - Added VFS
Direntclass - Added exports from readline, constants
- Renamed
AsyncHandletoHandleand merged it with sync handle/methods [internal] - Deprecated
Inode.toStats()[internal]
Testing
- Added
-d/--debugflag to zenfs-test (dumps commands) - Added
--profiletozenfs-test - Added test for different working directory with context (#263, marked as todo to not cause failures)
- Fixed directory test
- Changed tests to import from
@zenfs/coreinstead of../dist,../../dist, etc.
Documentation
- Added dedicated documentation page for devices
- Fixed
fsfunctions not being listed under thefsnamespace in documentation - Fixed some outdated documentation
- Updated Memium since beforehand it broke Typedoc
- Switched to Typedoc's built-in
excludeReferencesinstead of a plugin - Updated readme: fixed typos and added backends from other
@zenfspackages - Added a note to contributing guidelines for issue vs discussion
- Removed Dirent-specific tests (i.e. ones that used
new Dirent()
Development
- Issues now use GitHub Issue forms, which should help maintainers (me) triage faster
- npm scripts are now type checked
- Changed to using the built-in
styleTextfor npm scripts - Updated license identifier in index.ts so it is included by bundlers
- Moved license guide to copying
- Improved the .gitignore file