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
options?
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
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
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>