LogoRobo.js
Framework

ResilienceAdapter<K, V>

Class: ResilienceAdapter<K, V>

Resilience wrapper for adapters.

Automatically retries failed operations with exponential backoff when transient errors occur.

Extends

Type Parameters

Type ParameterDefault type
K extends stringstring
Vunknown

Constructors

new ResilienceAdapter()

new ResilienceAdapter<K, V>(adapter, options): ResilienceAdapter<K, V>

Parameters

ParameterType
adapterFlashcoreAdapter<K, V>
optionsResilienceOptions

Returns

ResilienceAdapter<K, V>

Overrides

AdapterWrapper.constructor

Properties

PropertyModifierTypeDefault valueDescriptionOverridesInherited from
namereadonly"ResilienceAdapter"'ResilienceAdapter'Human-readable name for this wrapper. Subclasses should override this.AdapterWrapper.name-
nextreadonlyFlashcoreAdapter<K, V>undefined--AdapterWrapper.next

Accessors

atomicBatch

Get Signature

get atomicBatch(): (ops) => void | Promise<void>

Atomic batch operations. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
opsBatchOperation<K, V>[]
Returns

void | Promise<void>

Overrides

AdapterWrapper.atomicBatch


compareAndSwap

Get Signature

get compareAndSwap(): (key, expected, next) => boolean | Promise<boolean>

Compare and swap. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
keyK
expectedV
nextV
Returns

boolean | Promise<boolean>

Overrides

AdapterWrapper.compareAndSwap


maxValueSize

Get Signature

get maxValueSize(): number

Maximum value size. Propagates from underlying adapter if available.

Returns

number

Maximum size in bytes for a single value. Used for chunk sizing and WAL segmentation.

Inherited from

AdapterWrapper.maxValueSize


scan

Get Signature

get scan(): (prefix) => 
  | K[]
  | Promise<K[]>
  | AsyncIterable<K, any, any>
| Promise<AsyncIterable<K, any, any>>

Scan for keys with a prefix. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
prefixK
Returns

| K[] | Promise<K[]> | AsyncIterable<K, any, any> | Promise<AsyncIterable<K, any, any>>

Overrides

AdapterWrapper.scan


setIfNotExists

Get Signature

get setIfNotExists(): (key, value) => boolean | Promise<boolean>

Set if not exists. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
keyK
valueV
Returns

boolean | Promise<boolean>

Overrides

AdapterWrapper.setIfNotExists


transaction

Get Signature

get transaction(): (fn) => Promise<void>

Native transaction API. Propagates from underlying adapter if available.

Returns

Function

Parameters
ParameterType
fn(tx) => Promise<void>
Returns

Promise<void>

Overrides

AdapterWrapper.transaction

Methods

capabilities()?

optional capabilities(): Partial<AdapterCapabilitiesReport>

Extended capabilities. Propagates from underlying adapter if available.

Returns

Partial<AdapterCapabilitiesReport>

Inherited from

AdapterWrapper.capabilities


clear()

clear(): Promise<void>

Clear all data.

Returns

Promise<void>

Overrides

AdapterWrapper.clear


delete()

delete(key): Promise<boolean>

Delete a key. Returns true if the key existed and was deleted.

Parameters

ParameterType
keyK

Returns

Promise<boolean>

Overrides

AdapterWrapper.delete


get()

get(key): Promise<V>

Get a value by key. Returns undefined if the key does not exist.

Parameters

ParameterType
keyK

Returns

Promise<V>

Overrides

AdapterWrapper.get


getConfig()

getConfig(): {
  jitter: number;
  maxRetries: number;
  retryBaseDelay: number;
  retryMaxDelay: number;
}

Get the current retry configuration.

Returns

{
  jitter: number;
  maxRetries: number;
  retryBaseDelay: number;
  retryMaxDelay: number;
}
NameType
jitternumber
maxRetriesnumber
retryBaseDelaynumber
retryMaxDelaynumber

getConsecutiveFailures()

getConsecutiveFailures(): number

Get the number of consecutive failures.

Returns

number


getInnermostAdapter()

protected getInnermostAdapter(): FlashcoreAdapter<K, V>

Get the innermost adapter by unwrapping all wrappers.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getInnermostAdapter


getWrappedAdapter()

protected getWrappedAdapter(): FlashcoreAdapter<K, V>

Get the underlying (wrapped) adapter.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getWrappedAdapter


has()

has(key): Promise<boolean>

Check if a key exists. Must return true for stored falsy values (0, false, '', null).

Parameters

ParameterType
keyK

Returns

Promise<boolean>

Overrides

AdapterWrapper.has


init()

init(): Promise<void>

Initialize the adapter (e.g., connect, create directories). Called once during Flashcore.$.init().

Returns

Promise<void>

Overrides

AdapterWrapper.init


isCurrentlyDisconnected()

isCurrentlyDisconnected(): boolean

Check if the adapter is currently in a disconnected state.

Returns

boolean


resetFailures()

resetFailures(): void

Reset the failure counter (useful for testing).

Returns

void


set()

set(key, value): Promise<boolean>

Set a key-value pair. Returns true if the operation succeeded.

Parameters

ParameterType
keyK
valueV

Returns

Promise<boolean>

Overrides

AdapterWrapper.set


shutdown()?

optional shutdown(): void | Promise<void>

Shutdown the adapter (e.g., close connections).

Returns

void | Promise<void>

Inherited from

AdapterWrapper.shutdown

On this page