TinyBase logoTinyBase

createPersister

The createPersister method is used to return a persister for the Durable Object to preserve Store data when clients are not connected.

createPersister(): undefined | Persister<MergeableStoreOnly> | Promise<Persister<MergeableStoreOnly>>
returnsundefined | Persister<MergeableStoreOnly> | Promise<Persister<MergeableStoreOnly>>

A new instance of a DurableObjectStoragePersister (or a promise to resolve one) that will be used to persist data to the Durable Object. Return undefined if that functionality is not required.

In other words, override this method to enable persistence of the Store data that the Durable Object is synchronizing between clients.

This should almost certainly return a DurableObjectStoragePersister, created with the createDurableObjectStoragePersister function. This will ensure that the Store is serialized to the Durable Object KV-based storage.

Returning undefined from this method will disable persistence.

Example

This example enables Durable Object persistence by creating a Persister object within the createPersister method of a WsServerDurableObject.

import {WsServerDurableObject} from 'tinybase/synchronizers/synchronizer-ws-server-durable-object';
import {createDurableObjectStoragePersister} from 'tinybase/persisters/persister-durable-object-storage';
import {createMergeableStore} from 'tinybase';

export class MyDurableObject extends WsServerDurableObject {
  createPersister() {
    const store = createMergeableStore();
    const persister = createDurableObjectStoragePersister(
      store,
      this.ctx.storage,
    );
    return persister;
  }
}

Since

v5.4.0