matrix-js-sdk

    Class IndexedDBStore

    A store for most of the data js-sdk needs to store, apart from crypto data

    Hierarchy (View Summary, Expand)

    Index

    Constructors

    • Construct a new Indexed Database store, which extends MemoryStore.

      This store functions like a MemoryStore except it periodically persists the contents of the store to an IndexedDB backend.

      All data is still kept in-memory but can be loaded from disk by calling startup(). This can make startup times quicker as a complete sync from the server is not required. This does not reduce memory usage as all the data is eagerly fetched when startup() is called.

      let opts = { indexedDB: window.indexedDB, localStorage: window.localStorage };
      let store = new IndexedDBStore(opts);
      let client = sdk.createClient({
      store: store,
      });
      await store.startup(); // load from indexed db, must be called after createClient
      client.startClient();
      client.on("sync", function(state, prevState, data) {
      if (state === "PREPARED") {
      console.log("Started up, now with go faster stripes!");
      }
      });

      Parameters

      • opts: IOpts

        Options object.

      Returns IndexedDBStore

    Properties

    accountData: Map<string, MatrixEvent> = ...

    The backend instance. Call through to this API if you need to perform specific indexeddb actions like deleting the database.

    clearOutOfBandMembers: DegradableFn<[roomId: string], void> = ...
    createUser?: UserCreator
    deleteAllData: DegradableFn<[], void> = ...

    Delete all data from this store.

    Promise which resolves if the data was deleted from the database.

    getClientOptions: DegradableFn<[], undefined | IStoredClientOpts> = ...
    getOutOfBandMembers: DegradableFn<
        [roomId: string],
        null | IStateEventWithRoomId[],
    > = ...

    Returns the out-of-band membership events for this room that were previously loaded.

    the events, potentially an empty array if OOB loading didn't yield any new members

    in case the members for this room haven't been stored yet

    getSavedSync: DegradableFn<[], null | ISavedSync> = ...

    Promise which resolves with a sync response to restore the client state to where it was at the last save, or null if there is no saved sync data.

    getSavedSyncToken: DegradableFn<[], null | string> = ...

    If there is a saved sync, the nextBatch token for this sync, otherwise null.

    isNewlyCreated: DegradableFn<[], boolean> = ...

    whether or not the database was newly created in this session.

    localStorage?: Storage
    setOutOfBandMembers: DegradableFn<
        [roomId: string, membershipEvents: IStateEventWithRoomId[]],
        void,
    > = ...

    Stores the out-of-band membership events for this room. Note that it still makes sense to store an empty array as the OOB status for the room is marked as fetched, and getOutOfBandMembers will return an empty array instead of null

    the membership events to store

    when all members have been stored

    setSyncData: DegradableFn<[syncData: ISyncResponse], void> = ...

    setSyncData does nothing as there is no backing data store.

    The sync data

    An immediately resolved promise.

    storeClientOptions: DegradableFn<[options: IStoredClientOpts], void> = ...

    Methods

    • Retrieve a filter ID with the given name.

      Parameters

      • filterName: string

        The filter name.

      Returns null | string

      The filter ID or null.

    • Possibly write data to the database.

      Parameters

      • force: boolean = false

        True to force a save to happen

      Returns Promise<void>

      Promise resolves after the write completes (or immediately if no write is performed)

    • Retrieve scrollback for this room.

      Parameters

      • room: Room

        The matrix room

      • limit: number

        The max number of old events to retrieve.

      Returns MatrixEvent[]

      An array of objects which will be at most 'limit' length and at least 0. The objects are the raw event JSON.

    • Store events for a room. The events have already been added to the timeline

      Parameters

      • room: Room

        The room to store events for.

      • events: MatrixEvent[]

        The events to store.

      • token: null | string

        The token associated with these events.

      • toStart: boolean

        True if these are paginated results.

      Returns void

    • Whether this store would like to save its data Note that obviously whether the store wants to save or not could change between calling this function and calling save().

      Returns boolean

      True if calling save() will actually save (at the time this function is called).

    MMNEPVFCICPMFPCPTTAAATR