This decorator can take a non-transactional LDFeatureStore implementation and adapt it to be transactional through the use of an in-memory store acting as cache.

Hierarchy

  • TransactionalFeatureStore

Implements

Constructors

Properties

_activeStore: any
_memoryStore: any
_nonTransPersistenceStore: any

Methods

  • Get all entities from a collection.

    The store should filter out any entities with the property deleted: true.

    Parameters

    • kind: DataKind

      The type of data to be accessed. The store should not make any assumptions about the format of the data, but just return an object in which each key is the key property of an entity and the value is the entity. The actual type of this parameter is interfaces.DataKind.

    • callback: ((res) => void)

      Will be called with the resulting map. The actual type of the result value is interfaces.KeyedItems<VersionedData>.

    Returns void

  • Applies the provided data onto the existing data, replacing all data or upserting depending on the basis parameter. Must call applyChanges providing basis before calling applyChanges that is not a basis.

    Parameters

    • basis: boolean

      If true, completely overwrites the current contents of the data store with the provided data. If false, upserts the items in the provided data. Upserts are made only if provided items have newer versions than existing items.

    • data: LDFeatureStoreDataStorage

      An object in which each key is the "namespace" of a collection (e.g. "features") and the value is an object that maps keys to entities. The actual type of this parameter is interfaces.FullDataSet<VersionedData>.

    • callback: (() => void)

      Will be called after the changes are applied.

        • (): void
        • Returns void

    • Optional _initMetadata: InitMetadata

      Optional metadata to initialize the feature store with.

      Optional
    • Optional _selector: String

      opaque string that uniquely identifies the state that contains the changes

      Optional

    Returns void

  • Releases any resources being used by the feature store.

    Returns void

  • Delete an entity from the store.

    Deletion should be implemented by storing a placeholder object with the property deleted: true and a version property equal to the provided version. In other words, it should be exactly the same as calling upsert with such an object.

    Parameters

    • kind: DataKind

      The type of data to be accessed. The actual type of this parameter is interfaces.DataKind.

    • key: string

      The unique key of the entity within the specified collection.

    • version: number

      A number that must be greater than the version property of the existing entity in order for it to be deleted. If it is less than or equal to the existing version, the method should do nothing.

    • callback: (() => void)

      Will be called when the delete operation is complete.

        • (): void
        • Returns void

    Returns void

  • Get an entity from the store.

    The store should treat any entity with the property deleted: true as "not found".

    Parameters

    • kind: DataKind

      The type of data to be accessed. The store should not make any assumptions about the format of the data, but just return a JSON object. The actual type of this parameter is interfaces.DataKind.

    • key: string

      The unique key of the entity within the specified collection.

    • callback: ((res) => void)

      Will be called with the retrieved entity, or null if not found. The actual type of the result value is interfaces.VersionedData.

    Returns void

  • Get a description of the store.

    Returns string

  • Initialize the store, overwriting any existing data.

    Parameters

    • allData: LDFeatureStoreDataStorage

      An object in which each key is the "namespace" of a collection (e.g. "features") and the value is an object that maps keys to entities. The actual type of this parameter is interfaces.FullDataSet<VersionedData>.

    • callback: (() => void)

      Will be called when the store has been initialized.

        • (): void
        • Returns void

    Returns void

  • Tests whether the store is initialized.

    "Initialized" means that the store has been populated with data, either by the client having called init() within this process, or by another process (if this is a shared database).

    Parameters

    • callback: ((isInitialized) => void)

      Will be called back with the boolean result.

        • (isInitialized): void
        • Parameters

          • isInitialized: boolean

          Returns void

    Returns void

  • Add an entity or update an existing entity.

    Parameters

    • kind: DataKind

      The type of data to be accessed. The actual type of this parameter is interfaces.DataKind.

    • data: LDKeyedFeatureStoreItem

      The contents of the entity, as an object that can be converted to JSON. The store should check the version property of this object, and should not overwrite any existing data if the existing version is greater than or equal to that value. The actual type of this parameter is interfaces.VersionedData.

    • callback: (() => void)

      Will be called after the upsert operation is complete.

        • (): void
        • Returns void

    Returns void

Generated using TypeDoc