LogoRobo.js
Framework

CompressionAdapter<K, V>

Class: CompressionAdapter<K, V>

Compression wrapper for adapters.

Values above the threshold are gzip compressed and stored as base64-encoded strings with a prefix tag.

Extends

Type Parameters

Type ParameterDefault type
K extends stringstring
Vunknown

Constructors

new CompressionAdapter()

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

Parameters

ParameterType
adapterFlashcoreAdapter<K, V>
optionsCompressionOptions

Returns

CompressionAdapter<K, V>

Overrides

AdapterWrapper.constructor

Properties

PropertyModifierTypeDefault valueDescriptionOverridesInherited from
namereadonly"CompressionAdapter"'CompressionAdapter'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>>

Inherited from

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>

Inherited from

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(): boolean | void | Promise<void> | Promise<boolean>

Clear all data.

Returns

boolean | void | Promise<void> | Promise<boolean>

Inherited from

AdapterWrapper.clear


delete()

delete(key): boolean | Promise<boolean>

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

Parameters

ParameterType
keyK

Returns

boolean | Promise<boolean>

Inherited from

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(): {
  level: number;
  threshold: number;
}

Get the current compression configuration.

Returns

{
  level: number;
  threshold: number;
}
NameType
levelnumber
thresholdnumber

getInnermostAdapter()

protected getInnermostAdapter(): FlashcoreAdapter<K, V>

Get the innermost adapter by unwrapping all wrappers.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getInnermostAdapter


getThreshold()

getThreshold(): number

Get the current threshold.

Returns

number


getWrappedAdapter()

protected getWrappedAdapter(): FlashcoreAdapter<K, V>

Get the underlying (wrapped) adapter.

Returns

FlashcoreAdapter<K, V>

Inherited from

AdapterWrapper.getWrappedAdapter


has()

has(key): boolean | Promise<boolean>

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

Parameters

ParameterType
keyK

Returns

boolean | Promise<boolean>

Inherited from

AdapterWrapper.has


init()?

optional init(): void | Promise<void>

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

Returns

void | Promise<void>

Inherited from

AdapterWrapper.init


isCompressed()

isCompressed(stored): boolean

Check if a stored value is compressed.

Parameters

ParameterType
storedunknown

Returns

boolean


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


setThreshold()

setThreshold(threshold): void

Set a new threshold (affects future writes only).

Parameters

ParameterType
thresholdnumber

Returns

void


shutdown()?

optional shutdown(): void | Promise<void>

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

Returns

void | Promise<void>

Inherited from

AdapterWrapper.shutdown

On this page