Skip to main content

Class: FileStorage

Defined in: packages/core/src/history/storage.ts:172

File-based storage implementation

Persists messages to a JSON file on disk. Handles directory creation and serialization automatically.

Examples

const history = new History(new FileStorage('./chat-history.json'));
class PostgresStorage implements HistoryStorage {
constructor(private sessionId: string) {}

async load(): Promise<StoredMessage[]> {
// Connect to database, load messages for sessionId
const result = await db.query('SELECT * FROM messages WHERE session_id = $1', [this.sessionId]);
return result.rows.map(deserializeMessage);
}

async save(messages: StoredMessage[]): Promise<void> {
// Clear existing messages and insert new ones
await db.query('DELETE FROM messages WHERE session_id = $1', [this.sessionId]);
for (const message of messages) {
await db.query('INSERT INTO messages (session_id, data) VALUES ($1, $2)', [
this.sessionId,
JSON.stringify(serializeMessage(message))
]);
}
}
}

const history = new History(new PostgresStorage('session-123'));

Implements

Constructors

Constructor

new FileStorage(filepath, options?): FileStorage

Defined in: packages/core/src/history/storage.ts:177

Parameters

filepath

string

options?
autoSave?

boolean

Returns

FileStorage

Methods

load()

load(): Promise<StorageData | null>

Defined in: packages/core/src/history/storage.ts:182

Load data from storage Returns the stored history data or null/undefined if nothing stored

Returns

Promise<StorageData | null>

Implementation of

HistoryStorage.load


save()

save(data): Promise<void>

Defined in: packages/core/src/history/storage.ts:234

Save data to storage Accepts StoredHistory (new format) or StoredMessage[] (legacy)

Parameters

data

StorageData

Returns

Promise<void>

Implementation of

HistoryStorage.save