Skip to content

basalt / subscriptions/src / RedisUsageStore

Class: RedisUsageStore ​

Defined in: subscriptions/src/drivers/redis-usage.ts:45

Usage counters: periodKey is 'lifetime' or 'YYYY-MM' for meters.

Implements ​

Constructors ​

Constructor ​

> new RedisUsageStore(redis, options?): RedisUsageStore

Defined in: subscriptions/src/drivers/redis-usage.ts:49

Parameters ​

redis ​

RedisLike

options? ​

RedisUsageStoreOptions = {}

Returns ​

RedisUsageStore

Methods ​

consume() ​

> consume(billableId, feature, periodKey, amount, limit): Promise<UsageConsumeResult>

Defined in: subscriptions/src/drivers/redis-usage.ts:89

Atomically increments by amount only if the result stays within limit. Must be atomic under concurrency so a quota is never overshot. amount must be a positive safe integer — implementations reject anything else with assertUsageAmount (a negative amount would refund quota).

Parameters ​

billableId ​

string

feature ​

string

periodKey ​

string

amount ​

number

limit ​

number

Returns ​

Promise<UsageConsumeResult>

Implementation of ​

UsageStore.consume


get() ​

> get(billableId, feature, periodKey): Promise<number>

Defined in: subscriptions/src/drivers/redis-usage.ts:65

Parameters ​

billableId ​

string

feature ​

string

periodKey ​

string

Returns ​

Promise<number>

Implementation of ​

UsageStore.get


increment() ​

> increment(billableId, feature, periodKey, amount): Promise<number>

Defined in: subscriptions/src/drivers/redis-usage.ts:70

Unconditional increment — used for unlimited features. Returns the new total. amount must be a positive safe integer (see assertUsageAmount).

Parameters ​

billableId ​

string

feature ​

string

periodKey ​

string

amount ​

number

Returns ​

Promise<number>

Implementation of ​

UsageStore.increment

Released under the MIT License.