Skip to content

@idlekitjs/storage

Save adapter implementations for IdleKit persistence.

What it provides

  • MemoryAdapter from @idlekitjs/storage/memory.
  • LocalStorageAdapter from @idlekitjs/storage/local-storage.

Both implement the SaveAdapter contract defined in @idlekitjs/types and consumed by SaveManager.

When to use it

Use @idlekitjs/storage when you need a concrete backend for SaveManager. Use MemoryAdapter for tests, SSR and ephemeral sessions. Use LocalStorageAdapter for browser games that save locally.

Basic usage

ts
import { SaveManager } from "@idlekitjs/core";
import { LocalStorageAdapter } from "@idlekitjs/storage/local-storage";

const save = new SaveManager<State>({
  key: "my-game",
  version: 1,
  adapter: new LocalStorageAdapter(),
});

await save.save(engine.state);

Boundaries

@idlekitjs/storage owns persistence backends, not gameplay save policies. Versioning, migrations and JSON serialization are handled by SaveManager; when to save is handled by game code or @idlekitjs/plugins.

Core knows the SaveAdapter contract but no concrete backend. Mechanics never touch storage directly.