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
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>