Classes · @purista/nats-state-store

NatsStateStore

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

Signature

NatsStateStore.ts typescript
class NatsStateStore

Examples

example-1.ts typescript
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.ts typescript
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.ts typescript
config: { cacheTtl: number; enableCache: boolean; enableGet: boolean; enableRemove: boolean; enableSet: boolean; keyValueStoreName: string; ... }

Store configuration including operation toggles.

connection

Property

Source
connection.ts typescript
connection: NatsConnection | undefined

Active NATS connection, created lazily by `getStore`.

kv

Property

Source
kv.ts typescript
kv: KV | undefined

Cached JetStream key-value bucket handle.

logger

Property

logger.ts typescript
logger: Logger

Child logger scoped to the store name.

name

Property

name.ts typescript
name: string

Store name used in logs and diagnostics.

sc

Property

Source
sc.ts typescript
sc: Codec<unknown>

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

Methods

8 entries

destroy

Method

Source
destroy.ts typescript
destroy(): Promise<void>

Drains and closes the NATS connection and clears cached handles.

getState

Method

getState.ts typescript
getState<StateNames>(...stateNames: StateNames): Promise<ObjectWithKeysFromStringArray<StateNames>>

Get one or more state values by name.

getStateImpl

Method

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

Adapter-specific state lookup implementation.

getStore

Method

Source
getStore.ts typescript
getStore(): Promise<KV>

Returns a healthy JetStream key-value bucket handle.

removeState

Method

removeState.ts typescript
removeState(stateName: string): Promise<void>

Remove one state value by name.

removeStateImpl

Method

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

Adapter-specific state removal implementation.

setState

Method

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

Store or replace one state value.

setStateImpl

Method

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

Adapter-specific state write implementation.