routier-collection / plugins/file-system/src / FileSystemPlugin
Class: FileSystemPlugin
Defined in: plugins/file-system/src/FileSystemPlugin.ts:25
Extends
EphemeralDataPlugin
Constructors
Constructor
new FileSystemPlugin(
path,databaseName):FileSystemPlugin
Defined in: plugins/file-system/src/FileSystemPlugin.ts:29
Parameters
path
string
databaseName
string
Returns
FileSystemPlugin
Overrides
EphemeralDataPlugin.constructor
Accessors
databaseName
Get Signature
get databaseName():
string
Defined in: plugins/file-system/src/FileSystemPlugin.ts:53
The resolved path, not the bare file name: orders.json in two directories is two databases, and scoping subscriptions by the name alone would let them notify each other. Same value as the registry key, which is the same question asked about collections.
Returns
string
Overrides
EphemeralDataPlugin.databaseName
Methods
bulkPersist()
bulkPersist(
event,done):void
Defined in: core/dist/plugins/EphemeralDataPlugin.d.ts:30
All-or-nothing across every collection in the save.
The naive shape — validate/apply/save one schema at a time — leaks partial saves: a conflict in the SECOND collection left the first collection's changes applied (measured in the finance stress app as one orphan ledger row per conflict). So the work is phased: every collection loads and validates BEFORE anything is applied, mutations apply with an undo log, and a failure anywhere reverts the memory state (and re-saves any files already written) so the caller sees a save that did nothing.
The remaining honesty gap is crash-safety across FILES: a process dying between two file writes can leave disk partially updated. Guarding that needs a journal, which a memory-first plugin does not pretend to have.
Parameters
event
DbPluginBulkPersistEvent
done
PluginEventCallbackPartialResult<BulkPersistResult>
Returns
void
Inherited from
EphemeralDataPlugin.bulkPersist
query()
query<
TEntity,TShape>(event,done):void
Defined in: core/dist/plugins/EphemeralDataPlugin.d.ts:66
Executes a query operation on the database.
Type Parameters
TEntity
TEntity extends object
TShape
TShape extends unknown = TEntity
Parameters
event
DbPluginQueryEvent<TEntity, TShape>
The query event containing schema, parent, and query operation.
done
PluginEventCallbackResult<ITranslatedValue<TShape>>
Callback with the result or error.
Returns
void
Inherited from
EphemeralDataPlugin.query
destroy()
destroy(
event,done):void
Defined in: plugins/file-system/src/FileSystemPlugin.ts:87
Parameters
event
DbPluginEvent
done
PluginEventCallbackResult<never>
Returns
void
Overrides
EphemeralDataPlugin.destroy