Options
All
  • Public
  • Public/Protected
  • All
Menu

Class StateDB<T>

The default concrete implementation of a state database.

Type parameters

  • T: ReadonlyPartialJSONValue = ReadonlyPartialJSONValue

Hierarchy

  • StateDB

Implements

Index

Constructors

constructor

  • Create a new state database.

    Type parameters

    • T: ReadonlyPartialJSONValue = ReadonlyPartialJSONValue

    Parameters

    • Optional options: IOptions<T>

      The instantiation options for a state database.

    Returns StateDB

Properties

Private _changed

_changed: any

Private _clear

_clear: any

Clear the entire database.

Private _connector

_connector: any

Private _fetch

_fetch: any

Fetch a value from the database.

Private _list

_list: any

Fetch a list from the database.

Private _merge

_merge: any

Merge data into the state database.

Private _overwrite

_overwrite: any

Overwrite the entire database with new contents.

Private _ready

_ready: any

Private _remove

_remove: any

Remove a key in the database.

Private _save

_save: any

Save a key and its value in the database.

Accessors

changed

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

    Returns ISignal<this, Change>

Methods

clear

  • clear(): Promise<void>
  • Clear the entire database.

    Returns Promise<void>

fetch

  • fetch(id: string): Promise<T | undefined>
  • Retrieve a saved bundle from the database.

    Parameters

    • id: string

      The identifier used to retrieve a data bundle.

    Returns Promise<T | undefined>

    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.

list

  • list(namespace: string): Promise<{ ids: string[]; values: T[] }>
  • 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

  • remove(id: string): Promise<void>
  • 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

  • save(id: string, value: T): Promise<void>
  • 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.

toJSON

  • toJSON(): Promise<{}>
  • Return a serialized copy of the state database's entire contents.

    Returns Promise<{}>

    A promise that resolves with the database contents as JSON.

Generated using TypeDoc