Class: FlydriveSpoolStore
Defined in: batteries/storage/flydrive/index.ts:314
"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);Implements
Constructors
Constructor
new FlydriveSpoolStore(disk: Disk, opts?: FlydriveSpoolStoreOptions): FlydriveSpoolStore;Defined in: batteries/storage/flydrive/index.ts:319
Parameters
| Parameter | Type |
|---|---|
disk | Disk |
opts | FlydriveSpoolStoreOptions |
Returns
FlydriveSpoolStore
Methods
delete()
delete(callId: string): Promise<boolean>;Defined in: batteries/storage/flydrive/index.ts:387
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.
Implementation of
SpoolStore.delete;keyFor()
keyFor(callId: string): string;Defined in: batteries/storage/flydrive/index.ts:401
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>;Defined in: batteries/storage/flydrive/index.ts:370
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.
Implementation of
SpoolStore.read;write()
write(
callId: string,
bytes:
| string
| Uint8Array<ArrayBufferLike>
| ReadableStream<Uint8Array<ArrayBufferLike>>,
opts?: FlydriveSpoolReaderOptions): Promise<FlydriveSpoolReader>;Defined in: batteries/storage/flydrive/index.ts:339
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> | ReadableStream<Uint8Array<ArrayBufferLike>> | The bytes to store, as a string, Uint8Array, or ReadableStream<Uint8Array>. |
opts? | FlydriveSpoolReaderOptions | Per-call override for streamThresholdBytes. |
Returns
Promise<FlydriveSpoolReader>
A FlydriveSpoolReader over the stored bytes.
Remarks
string/Uint8Array input goes through disk.put; ReadableStream<Uint8Array> is forwarded to disk.putStream (via Readable.fromWeb) so the payload streams straight to the backing driver — to disk for FSDriver, to the object store for S3/GCS — without being materialized in memory first.
Implementation of
SpoolStore.write;