Class StateDB<T>

The default concrete implementation of a state database.

Type Parameters

  • T extends ReadonlyPartialJSONValue = ReadonlyPartialJSONValue

Hierarchy

  • StateDB

Implements

Constructors

  • Create a new state database.

    Type Parameters

    • T extends ReadonlyPartialJSONValue = ReadonlyPartialJSONValue

    Parameters

    • Optional options: StateDB.IOptions<T>

      The instantiation options for a state database.

    Returns StateDB<T>

Properties

_changed: any
_clear: any

Clear the entire database.

_connector: any
_fetch: any

Fetch a value from the database.

_list: any

Fetch a list from the database.

_merge: any

Merge data into the state database.

_overwrite: any

Overwrite the entire database with new contents.

_ready: any
_remove: any

Remove a key in the database.

_save: any

Save a key and its value in the database.

Accessors

  • get changed(): ISignal<this, Change>
  • A signal that emits the change type any time a value changes.

    Returns ISignal<this, Change>

Methods

  • Clear the entire database.

    Returns Promise<void>

  • Retrieve a saved bundle from the database.

    Parameters

    • id: string

      The identifier used to retrieve a data bundle.

    Returns Promise<T>

    A promise that bears a data payload if available.

    Notes

    The id values of stored items in the state database are formatted: 'namespace:identifier', which is the same convention that command identifiers in JupyterLab use as well. While this is not a technical requirement for fetch(), remove(), and save(), it is necessary for using the list(namespace: string) method.

    The promise returned by this method may be rejected if an error occurs in retrieving the data. Non-existence of an id will succeed with the value undefined.

  • Retrieve all the saved bundles for a namespace.

    Parameters

    • namespace: string

    Returns Promise<{
        ids: string[];
        values: T[];
    }>

    A promise that bears a collection of payloads for a namespace.

    Notes

    Namespaces are entirely conventional entities. The id values of stored items in the state database are formatted: 'namespace:identifier', which is the same convention that command identifiers in JupyterLab use as well.

    If there are any errors in retrieving the data, they will be logged to the console in order to optimistically return any extant data without failing. This promise will always succeed.

  • Remove a value from the database.

    Parameters

    • id: string

      The identifier for the data being removed.

    Returns Promise<void>

    A promise that is rejected if remove fails and succeeds otherwise.

  • Save a value in the database.

    Parameters

    • id: string

      The identifier for the data being saved.

    • value: T

      The data being saved.

    Returns Promise<void>

    A promise that is rejected if saving fails and succeeds otherwise.

    Notes

    The id values of stored items in the state database are formatted: 'namespace:identifier', which is the same convention that command identifiers in JupyterLab use as well. While this is not a technical requirement for fetch(), remove(), and save(), it is necessary for using the list(namespace: string) method.

  • Return a serialized copy of the state database's entire contents.

    Returns Promise<{
        [id: string]: T;
    }>

    A promise that resolves with the database contents as JSON.

Generated using TypeDoc