Skip to content

0.2.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@james-pre james-pre released this 07 Mar 14:13
· 940 commits to main since this release
e610aa3
  • Added support for symlinks
  • Removed callback support in configure and initialize
  • Added support for Backend in configure
  • Greatly simplified FileSystem
    • Removed methods from Internal API: access, open, truncate, readFile, writeFile, appendFile, chmod, chown, utimes, symlink, readlink, 'realpath'
    • Combined BaseFileSystem into FileSystem (removed default ENOTSUP implementations and marked them as abstract)
    • Changed from an interface to an abstract class
    • Renamed FileSystem.whenReady to FileSystem.ready
    • Added AsyncFileSystem (adds default ENOTSUP implementations for synch methods)
    • Removed metadata.supportsLinks
  • Changes to SyncStore and AsyncStore and their FSes
    • Added support for hard links
    • Updated SimpleSyncRWTransaction to use Map and Set instead of normal objects and arrays
    • Removed "KeyValue" from Sync* and Async* names
    • Renamed del to remove on transaction classes
  • Reworked backends
    • Renamed BackendContructor to Backend
    • Separated backends from FS classes
    • Changed to using createBackend(backend) instead of binding createBackend to the backend
    • Added isBackend and isBackendConfig
    • Renamed getFileSystem to resolveBackendConfig
    • Removed callback support createBackend
  • Changes to the emulation layer
    • Fixed the options for many functions
    • Added FileHandle
    • Fixed fs.promises functions that use a FileHandle instead of numeric descriptor
    • Removed some fs.promises functions that do not exist on the Node API
    • Added type checks with the Node API using satisfies on each method instead of a single intersection type assignment
    • Added writeFileSync data check
  • Reworked LRUCache
  • Fully and correctly implemented encode and decode
  • Improved File
    • Changed from an interface to an abstract class
    • Combined BaseFile into File (removed default ENOTSUP implementations and marked them as abstract)
    • Added File.path
    • Changed File.get* methods to getters
    • Fixed File.readSync's behavior when reading past the end of the file
  • Added setters to Stats.*time
  • Improved Inode
    • Changed the data members to be accessors that modify the underlying buffer directly
    • Removed serialize and Deserialize
    • Changed Inode.update to accept Readonly<Stats>
    • Added data getter which returns the buffer
    • Changed Inode to named instead of default export
  • Changes to ApiError
    • Renamed ApiError.FileError to ApiError.OnPath
    • Removed ApiError.Deserialize and ApiError.serialize
  • Tests
    • Restructured tests directory
    • Changed tests to not use multiple backends since they would not work at all with the multi-backend setup.
    • Fixed many of the tests
    • Added tests for encoding