Skip to content

Releases: zen-fs/core

0.12.4

23 May 12:50
v0.12.4
6a3c596
Compare
Choose a tag to compare
0.12.4 Pre-release
Pre-release

Fixed the unresolved path being used in _open's exists check

0.12.3

22 May 13:54
v0.12.3
e9297e4
Compare
Choose a tag to compare
0.12.3 Pre-release
Pre-release
  • Fixed File.write (+Sync) position allowing null and having an incorrect default
  • Inlined pathNotExistsAction and pathExistsAction, which made the _open (+Sync) more readable
  • Updated error messages for sync PortFile methods to throw ENOTSUP instead of ENOSYS (since sync. methods are not currently supported)
  • Consistent type imports

0.12.2

20 May 18:14
v0.12.2
b6c777e
Compare
Choose a tag to compare
0.12.2 Pre-release
Pre-release
  • File.readSync now updates atime correctly
  • Calls to File.sync and File.syncSync no longer check for sync flag
  • Implemented StatsCommon methods: isSocket, isBlockDevice, isCharacterDevice, isFIFO
  • Changed StatsCommon.blocks to a getter
  • Streamlined StatsCommon constructor
  • Fixed StatsCommon.*timeNs being incorrect
  • Removed Stats.clone and BigintStats.clone
  • Implemented statsfs
  • Inlined wrap in sync.ts
    • _openSync now only resolves the fs and such once, which improves performance
  • Streamlined _open (+*Sync)

0.12.1

19 May 18:33
v0.12.1
aaa3fb7
Compare
Choose a tag to compare
0.12.1 Pre-release
Pre-release
  • Fixed FileSystem.exists (+*Sync) returning false for non-ENOENT errors
  • Fixed _open (+*Sync) incorrectly handling non-ENOENT errors
  • _open (+*Sync) now adds the original stack trace on the second throw
  • Fixed configure overwriting per-mount disableAsyncCache option
  • Improved configure handling when no mounts are specified
  • Added overloads to configure
  • configure now gives a Typescript error when a mount's configuration is incorrect
  • Added BackendConfiguration.disableAsyncCache
  • Fixed missing Buffer import (#63)— Thanks @atty303!
  • Consistent type assertions
  • Added FileSystemMetadata.noAsyncCache
  • Added AsyncFS._disableSync
  • Added FileSystemMetadata.noResizableBuffers, which
  • Updated utilium to v0.4.0

0.12.0

17 May 18:48
v0.12.0
1d12c05
Compare
Choose a tag to compare
0.12.0 Pre-release
Pre-release
  • Overhauled file index:
    • Renamed FileIndex to Index
    • The index JSON format now uses versioning and "flat" entries
    • Index now preloads all files when loaded
    • Removed SyncIndexFS and AsyncIndexFS
    • Added IndexFS.reloadFiles (and *Sync)
  • Renamed FetchFS.preloadFile to FetchFS.preload
  • Removed FetchFS.empty
  • Renamed FetchFS.prefixUrl to FetchFS.naseUrl for consistancy with FetchOptions
  • Added optional generic type to StatsLike

0.11.2

16 May 15:51
v0.11.2
615c05a
Compare
Choose a tag to compare
0.11.2 Pre-release
Pre-release
  • Fixed FileHandle.readFile's File.read usage not working with PortFile (#60)
  • Fixed AsyncFS.openFileSync returning a File with a different fs
  • Add optional type parameter to StoreFS
  • Renamed LockedFS._mu to LockedFS.mutex
  • Renamed Mutex._locks to Mutex.locks
  • Renamed *FileSystem to *FS in filesystem.ts
  • Renamed doOp to wrap in sync.ts
  • make-index:
    • Updated help message
    • Added verbose logging
    • Fixed positional arguments handled incorrectly
  • Updated Fetch.options.index.description

0.11.1

15 May 19:20
v0.11.1
316a25c
Compare
Choose a tag to compare
0.11.1 Pre-release
Pre-release
  • Changed Backend.create to allow async implementations (since the usage in resolveMountConfig already supports this)
  • Added FilesystemOf type
  • Added exports for backends/store/*
  • Removed createBackend

0.11.0

15 May 18:31
v0.11.0
468e71c
Compare
Choose a tag to compare
0.11.0 Pre-release
Pre-release
  • Merged SyncStore* and AsyncStore* logic into combined Store*
  • StoreFS
    • SyncStoreFS and AsyncStoreFS combined into StoreFS
    • Renamed commitNewFile to commitNew (and *Sync)
    • Renamed addNewNode to addNew (and *Sync)
    • Renamed removeEntry to remove (and *Sync)
    • Streamlined some methods
    • Changed the constructor to take a store directly
      • It now takes a Store | Promise<Store> instead of { store: Store | Promise<Store> }
      • Also removed StoreOptions
  • Store
    • SyncStore and AsyncStore combined into Store
    • Renamed beginTransaction to transaction
    • Changed clear to allow async implementations
    • Added caching for SimpleAsyncStore
  • Transaction
    • SyncTransaction and AsyncTransaction combined into Transaction
    • Renamed put to set and removed the overwrite parameter
    • Made an abstract class
  • Split store code into multiple files (see src/backend/store)
  • Fixed an index out of bound in File.readSync when offset is non-zero— Thanks @atty303! (#56)
  • Fixed unresolved types in configure (#48)
  • Removed PortStore backend (use Port instead)
  • Changed FileSystem.ready() to return Promise<void>
    • This fixes Port attempting to postMessage non-transferable objects
  • Changed InMemoryStore to extend Map
  • Narrowed rootIno type from Ino to 0n
  • Renamed p arguments to path for clarity

0.10.0

08 May 22:01
v0.10.0
27d6504
Compare
Choose a tag to compare
0.10.0 Pre-release
Pre-release
  • Overhauled configuration
    • Renamed MappingConfiguration to Configuration
    • Removed old Configuration type
    • Changed the new Configuration to have mounts as a property
    • Renamed MountMapping to MountObject
    • Renamed mountMapping to mountObject
  • Added port backends (since they are cross platform)
    • Fixed PortFile sync methods having a "Sync" postfix in error syscalls
    • Fixed PortFS not awaiting super.ready()
    • Fixed handleRequest not transmitting errors correctly
    • RPC.handleResponse no longer returns a value
  • Added the Fetch backend (again, because it is cross-platform)
    • Fixed FetchFS.preloadFile check ordering
  • Added Fetch backend to core
  • Changes to errors
    • Renamed ApiError to ErrnoError
    • Renamed ApiErrorJSON to ErrnoErrorJSON
    • Renamed ErrorCode to Errno
    • The error JSON interface is now exported
    • Changed some errors to use ErrnoError instead of regular error classes
  • Added the AbsolutePath type
  • Streamlined path emulation and normalizePath
  • Changed FileHandle constructor to also take Files
  • Removed _readFile and _appendFile internal functions
  • Inlined doOp for the promises API
  • Added Symbol.dispose and Symbol.asyncDispose to File
  • Upgraded eslint to support explicit resource management (ERM not added yet because it breaks tests)
  • Added ESNext.Disposable TS lib

0.9.7

07 May 15:25
v0.9.7
75329bd
Compare
Choose a tag to compare
0.9.7 Pre-release
Pre-release
  • Enabled strict mode, which lead to a lot of bugs being fixed.
  • Added full compatibility for fs.PathLike, not just strings
  • Fixed new Uint8Array(arrayBuffer) not passing offset and length parameters
  • PreloadFile.write now calls sync
  • Fixed readFileSync overload ordering
  • Updated promises.writeFile overloads
  • Made path argument of ApiError.With optional
  • Made File.position and File.path required
  • Fixed Mutex.lock not adding resolve if the path hadn't been locked, meaning no resolves would ever be added.
  • Changed BigIntStats.*timeNs to be getters on StatsCommon
  • Added initializers to StatsFs and BigIntStatsFs
  • Added better handling for AsyncStorFS.store. An error will now be thrown if store has not been set.
  • Fixed createBackend not awaiting checkOptions
  • Changed BackendConfiguration to take a single Backend type parameter
  • Added Dir._entries initializer
  • Renamed getFdForFile to file2fd