Files
rudder-js-sdk/skills/rudder-web-sdk/reference/storage.md
T

36 lines
1.1 KiB
Markdown
Raw Normal View History

# Storage — `client.storage`
Per-player storage, one item per `type`. `StorageDomain`, revision key
`storage`. Source: `src/domains/StorageDomain.ts`.
```ts
client.storage.value // GetStorageResponse | undefined
await client.storage.save(type, data);
await client.storage.delete(type);
```
```ts
interface GetStorageResponse {
items?: StorageItem[];
nextCursor?: string;
}
interface StorageItem {
data?: string; // opaque payload, JSON-stringify yourself
id?: string; // server-assigned
type?: string; // the storage key
}
```
- `save(type: string, data: string): Promise<void>`: upserts the item of
`type` (the server keeps one item per player and type), then invalidates.
- `delete(type: string): Promise<void>`: deletes the item of `type`, then
invalidates.
## Limits and notes
- The state loads with `{ limit: 100 }`; `nextCursor` pagination is not
surfaced.
- `data` is a raw string on the wire; serialize and parse JSON yourself.
- Project storage is not reachable from the client SDK. It stays available to
modules, the dashboard and `/game/v1`.