Classes · @purista/nats-state-store

NatsStateStore

State store backed by a NATS JetStream key-value bucket.

Signature

NatsStateStore.tstypescript
class NatsStateStore

Examples

example-1.tstypescript
const store = new NatsStateStore({
  servers: 'nats:___PH0___
  keyValueStoreName: 'purista-state-store',
})

await store.setState('tenant.acme.prod.cart.session-123', { step: 'shipping' })
const state = await store.getState('tenant.acme.prod.cart.session-123')
await store.destroy()

Constructors

1 entry

constructor

Constructor

Source
constructor.tstypescript
new constructor(config?: { cacheTtl: number; enableCache: boolean; enableGet: boolean; enableRemove: boolean; enableSet: boolean; keyValueStoreName: string; ... })

Creates a NATS JetStream-backed state store.

Properties

6 entries

config

Property

config.tstypescript
config: { cacheTtl: number; enableCache: boolean; enableGet: boolean; enableRemove: boolean; enableSet: boolean; keyValueStoreName: string; ... }

Store configuration including operation toggles.

connection

Property

Source
connection.tstypescript
connection: NatsConnection | undefined

Active NATS connection, created lazily by `getStore`.

kv

Property

Source
kv.tstypescript
kv: KV | undefined

Cached JetStream key-value bucket handle.

logger

Property

logger.tstypescript
logger: Logger

Child logger scoped to the store name.

name

Property

name.tstypescript
name: string

Store name used in logs and diagnostics.

sc

Property

Source
sc.tstypescript
sc: Codec<unknown>

JSON codec used to encode and decode values in the key-value bucket.

Methods

8 entries

destroy

Method

Source
destroy.tstypescript
destroy(): Promise<void>

Drains and closes the NATS connection and clears cached handles.

getState

Method

getState.tstypescript
getState<StateNames>(...stateNames: StateNames): Promise<ObjectWithKeysFromStringArray<StateNames>>

Get one or more state values by name.

getStateImpl

Method

Source
getStateImpl.tstypescript
getStateImpl<StateNames>(...stateNames: StateNames): Promise<ObjectWithKeysFromStringArray<StateNames>>

Adapter-specific state lookup implementation.

getStore

Method

Source
getStore.tstypescript
getStore(): Promise<KV>

Returns a healthy JetStream key-value bucket handle.

removeState

Method

removeState.tstypescript
removeState(stateName: string): Promise<void>

Remove one state value by name.

removeStateImpl

Method

Source
removeStateImpl.tstypescript
removeStateImpl(stateName: string): Promise<void>

Adapter-specific state removal implementation.

setState

Method

setState.tstypescript
setState(stateName: string, stateValue: unknown): Promise<void>

Store or replace one state value.

setStateImpl

Method

Source
setStateImpl.tstypescript
setStateImpl(stateName: string, stateValue: unknown): Promise<void>

Adapter-specific state write implementation.