Skip to content

Releases: zen-fs/core

0.3.2

16 Mar 00:41
0094f98
Compare
Choose a tag to compare
0.3.2 Pre-release
Pre-release
  • Changed FileSystem.metadata from a getter to a function.
    • Since Typescript would lose track of the accessor information, convert it to a readonly property, then give an error when a class defined it as a getter.
  • Renamed AsyncMirror.Options to AsyncMirrorOptions
  • Renamed AsyncStoreFileSystemOptions to AsyncStoreOptions
  • Renamed SyncStoreFileSystemOptions to SyncStoreOptions
  • Renamed AsyncStoreFileSystem to AsyncStoreFS
  • Renamed SyncStoreFileSystem to SyncStoreFS

0.3.1

16 Mar 00:10
0e87426
Compare
Choose a tag to compare
0.3.1 Pre-release
Pre-release

Fixed the generated return types for Sync, Async, and Readonly (the mixins) being merged with FileSystem, which meant that Typescript incorrectly thought that any file system extending the returned class had all of the members implemented, even if it did not.

0.3.0

15 Mar 22:39
cf02874
Compare
Choose a tag to compare
0.3.0 Pre-release
Pre-release
  • Added mixins for adding implementations for various use cases:
    • Sync: Implements async methods using the sync methods
    • Async: Implements sync methods to throw ENOTSUP
    • Readonly: Implements methods that makes changes to throw EROFS
    • They are used in the extends clause by wrapping any base file system, like so:
       class MyFS extends Readonly(Sync(FileSystem)) { /* ... */ }
    • Note that decorators are not used since they can not modify the resulting type.
  • Removed SyncFileSystem, AsyncFileSystem, ReadonlySyncFileSystem, and ReadonlyAsyncFileSystem (use mixins)
  • Changed LockedFS to named export
  • Narrowed usage of no-unused-vars in filesytem.ts
  • Removed isIndexDirInode and isIndexFileInode (bloat)
  • Renamed IndexInode.isDir to IndexInode.isDirectory
  • Exported ListingQueueNode
  • Removed FileSystem.Name
  • Added public modifier to FileSystem members that were missing it.
  • Readded FileIndex
  • Added FileIndexFS, SyncFileIndexFS, and AsyncFileIndexFS

0.2.3

15 Mar 15:13
2b38586
Compare
Choose a tag to compare
0.2.3 Pre-release
Pre-release
  • Fixed some global types having duplicate definitions

0.2.2

15 Mar 13:03
44b62bb
Compare
Choose a tag to compare
0.2.2 Pre-release
Pre-release
  • Fixed resolveBackendConfig not checking options
  • Removed old _InMemory
  • Removed getMount and getMounts
  • Exported mounts
  • Removed FileIndex (moved to dom)
  • Fixed Overlay options being options
  • Renamed OverlayFS.ts to Overlay.ts
  • Changed AsyncStoreFileSystem to allow passing in an AsyncStore not wrapped in a promise
  • Fixed metadata getter on SyncStore and AsyncStore
  • Added ReadonlyAsyncFileSystem and ReadonlySyncFileSystem

0.2.1

07 Mar 16:39
9642da3
Compare
Choose a tag to compare
0.2.1 Pre-release
Pre-release
  • Changed AsyncStoreFileSystem to support async stores better
  • Changed AsyncStoreFileSystem to use an object for the options
  • Fixed AsyncStoreFileSystem._ready to be set to AsyncStoreFileSystem._initialize() in constructor.
  • Added AsyncStoreFileSystemOptions
  • Renamed SyncFileSystemOptions to SyncStoreFileSystemOptions

0.2.0

07 Mar 14:13
e610aa3
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release
  • 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

0.1.0

27 Feb 00:38
Compare
Choose a tag to compare
0.1.0 Pre-release
Pre-release
  • Fixed Uint8Array.toString being used incorrectly
  • Improve stat implementations
  • Fixed fixPaths handling of undefined parameter
  • Fixed fixError handling of undefined parameter
  • Updated stats variants to use satisfies
  • Updated build target to es2020
  • Added satisfies checks to sync functions
  • Added PathLike type
  • Simplified exported fs type
  • Removed old types in comments
  • Added BufferToUint8Array type

0.0.12

24 Oct 22:11
Compare
Choose a tag to compare
0.0.12 Pre-release
Pre-release
  • Fixed encode and decode not correctly this bound
  • Moved encoding-related code to the emulation layer

0.0.11

20 Oct 11:17
Compare
Choose a tag to compare
0.0.11 Pre-release
Pre-release

Fixed TextEncoder and TextDecoder type declarations