Skip to content

Releases: jrfso/jrfs

v0.3.0

24 Oct 23:37
0a950da
Compare
Choose a tag to compare

Summary

Fixes

  • FS write logic comparing ctimes and patching existing data has been moved into the FsDriver transaction.
  • Simplifies lots of types.
  • Better type naming, organization. Untangles internal layering.
  • Some undocumented bug fixes.

Additions

  • A dynamic Commands model has been added.

    • The existing core FS transactions (add,move,copy,write,...)have been reworked to fit into the Commands model as FsCommands.
    • Commands can be executed by any type of Driver and can be forwarded to other layers (over the Internet or within our own code) since a Command represents the most compact, serializable essence of any built-in or integrated transactions that we want to perform on our file systems.
  • A dynamic Plugins system has been added.

    • Plugins can register their own commands.
    • Allows module augmentation to declare common Repository facade methods that call commands.
    • Allows command implementations to be registered separately from command-calling facade methods...
      • i.e. You can have your command-calling facade in your common package and your command implementations in various other packages which might be specific to a certain type of driver e.g. FsDriver | WebDriver...

v0.2.0

05 Oct 19:13
18b8925
Compare
Choose a tag to compare

Summary

  • Simplifies FileSystem generic signature and remove unnecessary driver property.
  • Simplifies Driver types, make them non-generic. Drivers that need typed fileTypes can cast to that type.
  • Re-exports commonly used mutative helpers for use with integrations (applyPatch, createPatch).
    • Implement createPatch via mutative's makeCreator, allowing FileSystem.write() callbacks to return whole file data.
  • Removes DriverProps.fileTree constructor argument to allow creating Repository.fs after driver. Replaces wonky FileSystem factory with a standard constructor.

v0.1.0

04 Oct 20:41
393c15c
Compare
Choose a tag to compare

Summary

  • Extracted FileSystem from Repository, exposed as Repository.fs. (BREAKING)
  • Added FileTree.rid resource id property.
  • Restructured FsDriver config and index file to store FileTree.rid. (BREAKING)
    • The FsConfig field ids was renamed to index.
    • The IdsFile interface was renamed to FsIndexFileData and restructured from Record<string,string> to { rid?:string; node: Record<string, string> }.
  • Removed unused FileTree.fullPath method and FileTree.rootPath field. (BREAKING)

What's Changed

  • v0.1.0 Repository is not a FileTree, it has a top level FileTree interface named fs. by @waynesbrain in #3

Full Changelog: v0.0.4...v0.1.0