File system implementation of the BaseStore using a dictionary. Used for storing key-value pairs in the file system.

const store = await LocalFileStore.fromPath("./messages");
await store.mset(
Array.from({ length: 5 }).map((_, index) => [
`message:id:${index}`,
new TextEncoder().encode(
JSON.stringify(
index % 2 === 0
? new AIMessage("ai stuff...")
: new HumanMessage("human stuff..."),
),
),
]),
);
const retrievedMessages = await store.mget(["message:id:0", "message:id:1"]);
console.log(retrievedMessages.map((v) => new TextDecoder().decode(v)));
for await (const key of store.yieldKeys("message:id:")) {
await store.mdelete([key]);
}

Security Notice This file store can alter any text file in the provided directory and any subfolders. Make sure that the path you specify when initializing the store is free of other files.

Hierarchy

  • BaseStore<string, Uint8Array>
    • LocalFileStore

Constructors

Properties

rootPath: string

Methods

  • Deletes the given keys and their associated values from the store.

    Parameters

    • keys: string[]

      Keys to delete from the store.

    Returns Promise<void>

    Promise that resolves when all keys have been deleted.

  • Retrieves the values associated with the given keys from the store.

    Parameters

    • keys: string[]

      Keys to retrieve values for.

    Returns Promise<(undefined | Uint8Array)[]>

    Array of values associated with the given keys.

  • Sets the values for the given keys in the store.

    Parameters

    • keyValuePairs: [string, Uint8Array][]

      Array of key-value pairs to set in the store.

    Returns Promise<void>

    Promise that resolves when all key-value pairs have been set.

  • Returns Serialized

  • Asynchronous generator that yields keys from the store. If a prefix is provided, it only yields keys that start with the prefix.

    Parameters

    • Optionalprefix: string

      Optional prefix to filter keys.

    Returns AsyncGenerator<string, any, unknown>

    AsyncGenerator that yields keys from the store.