1681-engine / index / SaveStore
Class: SaveStore ​
Defined in: src/save/SaveStore.ts:68
Named save slots with a schema version, migrations from older versions, a checksum to catch a damaged slot, and a backup of the previous save to fall back to. Data must be JSON-safe (plain objects, arrays, strings, finite numbers, booleans, null).
const saves = new SaveStore({ version: 3, migrations: { 1: addInventory, 2: renameGold } });
await saves.save('slot1', state, { level: 4 });
const r = await saves.load<GameState>('slot1');
if (r.ok) start(r.data); else if (r.reason !== 'missing') warn(r.reason);Writes to one slot are queued in order, so an autosave and a manual save never land the wrong way round.
Constructors ​
Constructor ​
new SaveStore(options): SaveStore;Defined in: src/save/SaveStore.ts:77
Parameters ​
| Parameter | Type |
|---|---|
options | SaveStoreOptions |
Returns ​
SaveStore
Properties ​
version ​
readonly version: number;Defined in: src/save/SaveStore.ts:69
Methods ​
delete() ​
delete(slot): Promise<void>;Defined in: src/save/SaveStore.ts:117
Removes a slot and its backup.
Parameters ​
| Parameter | Type |
|---|---|
slot | string |
Returns ​
Promise<void>
list() ​
list(): Promise<SaveInfo[]>;Defined in: src/save/SaveStore.ts:126
Every slot that reads, newest first, without migrating its data. A damaged slot is left out.
Returns ​
Promise<SaveInfo[]>
load() ​
load<T>(slot): Promise<LoadResult<T>>;Defined in: src/save/SaveStore.ts:106
Reads slot, brought to the current version. Never throws for a bad slot: the result says what went wrong.
Type Parameters ​
| Type Parameter |
|---|
T |
Parameters ​
| Parameter | Type |
|---|---|
slot | string |
Returns ​
Promise<LoadResult<T>>
save() ​
save(
slot,
data,
meta?
): Promise<SaveInfo>;Defined in: src/save/SaveStore.ts:88
Writes data to slot at the current version. Rejects when the backend does (a full disk, a quota).
Parameters ​
| Parameter | Type | Default value |
|---|---|---|
slot | string | undefined |
data | unknown | undefined |
meta | unknown | null |
Returns ​
Promise<SaveInfo>