Class: FlydriveSpoolStore
"Give bytes, get a reader" persistence layer over a flydrive Disk.
Remarks
write(callId, bytes) calls disk.put(key, bytes) where key = keyPrefix + callId, then returns a fresh FlydriveSpoolReader pointed at the same key. read(callId) returns a reader without re-writing; delete(callId) calls disk.delete(key).
The store is stateless — it owns no in-memory cache of writes. Multiple FlydriveSpoolStore instances sharing the same disk + key prefix see the same data.
Example
import { Disk } from "flydrive";
import { FSDriver } from "flydrive/drivers/fs";
import { FlydriveSpoolStore } from "@nhtio/adk/batteries/storage/flydrive";
const disk = new Disk(
new FSDriver({ location: "./tmp", visibility: "public" }),
);
const store = new FlydriveSpoolStore(disk);
const bytes = await tool.executor(ctx)(args);
const reader = await store.write(callId, bytes);
const Ctor = tool.artifactConstructor?.() ?? SpooledArtifact;
const artifact = new Ctor(reader);Constructors
Constructor
new FlydriveSpoolStore(disk: Disk, opts?: FlydriveSpoolStoreOptions): FlydriveSpoolStore;Parameters
| Parameter | Type |
|---|---|
disk | Disk |
opts | FlydriveSpoolStoreOptions |
Returns
FlydriveSpoolStore
Methods
delete()
delete(callId: string): Promise<boolean>;Removes the entry under callId.
Parameters
| Parameter | Type | Description |
|---|---|---|
callId | string | Identifier whose entry should be removed. |
Returns
Promise<boolean>
true if the key existed and was removed; false if it didn't exist.
keyFor()
keyFor(callId: string): string;Returns the full disk key for a given callId (i.e. keyPrefix + callId).
Parameters
| Parameter | Type |
|---|---|
callId | string |
Returns
string
Remarks
Useful for tests or for callers that want to interact with the underlying disk directly.
read()
read(callId: string, opts?: FlydriveSpoolReaderOptions): Promise<FlydriveSpoolReader | undefined>;Returns a reader over the bytes previously written under callId.
Parameters
| Parameter | Type | Description |
|---|---|---|
callId | string | Identifier supplied to a prior FlydriveSpoolStore.write call. |
opts? | FlydriveSpoolReaderOptions | Per-call override for streamThresholdBytes. |
Returns
Promise<FlydriveSpoolReader | undefined>
A FlydriveSpoolReader, or undefined if the key is missing.
Remarks
Returns undefined if the underlying key does not exist. Existence is checked via disk.exists(key) before the reader is returned, so callers can rely on a defined return value pointing at a real object.
write()
write(
callId: string,
bytes: string | Uint8Array<ArrayBufferLike>,
opts?: FlydriveSpoolReaderOptions): Promise<FlydriveSpoolReader>;Persists bytes under callId and returns a reader bound to the stored key.
Parameters
| Parameter | Type | Description |
|---|---|---|
callId | string | Identifier used to retrieve the bytes via FlydriveSpoolStore.read. |
bytes | string | Uint8Array<ArrayBufferLike> | The bytes to store, as a string or Uint8Array. |
opts? | FlydriveSpoolReaderOptions | Per-call override for streamThresholdBytes. |
Returns
Promise<FlydriveSpoolReader>
A FlydriveSpoolReader over the stored bytes.