Class: RateLimitManager<K>
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:3
Extends
Type Parameters
| Type Parameter | Default type |
|---|---|
K | string |
Constructors
Constructor
new RateLimitManager<
K>(time:number,limit:number):RateLimitManager<K>
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:23
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
time | number | undefined | The amount of milliseconds for the ratelimits from this manager to expire. |
limit | number | 1 | The amount of times a RateLimit can drip before it's limited. |
Returns
RateLimitManager<K>
Overrides
Map<K, RateLimit<K>>.constructor
Properties
[toStringTag]
readonly[toStringTag]:string
Defined in: node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:137
Inherited from
Map.[toStringTag]
limit
readonlylimit:number
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:12
The amount of times a RateLimit can drip before it's limited.
size
readonlysize:number
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:45
Returns
the number of elements in the Map.
Inherited from
Map.size
sweepInterval
privatesweepInterval:undefined|null|Timeout
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:17
The interval to sweep expired ratelimits.
time
readonlytime:number
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:7
The amount of milliseconds for the ratelimits from this manager to expire.
[species]
readonlystatic[species]:MapConstructor
Defined in: node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts:319
Inherited from
Map.[species]
sweepIntervalDuration
staticsweepIntervalDuration:number=30_000
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:75
The delay in milliseconds for RateLimitManager.sweepInterval.
Methods
[iterator]()
[iterator]():
IterableIterator<[K,RateLimit<K>]>
Defined in: node_modules/typescript/lib/lib.es2015.iterable.d.ts:119
Returns an iterable of entries in the map.
Returns
IterableIterator<[K, RateLimit<K>]>
Inherited from
Map.[iterator]
acquire()
acquire(
id:K):RateLimit<K>
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:34
Gets a RateLimit from this manager or creates it if it does not exist.
Parameters
| Parameter | Type | Description |
|---|---|---|
id | K | The id for the RateLimit |
Returns
RateLimit<K>
clear()
clear():
void
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:20
Returns
void
Inherited from
Map.clear
create()
create(
id:K):RateLimit<K>
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:42
Creates a RateLimit for this manager.
Parameters
| Parameter | Type | Description |
|---|---|---|
id | K | The id the RateLimit belongs to |
Returns
RateLimit<K>
delete()
delete(
key:K):boolean
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:24
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
boolean
true if an element in the Map existed and has been removed, or false if the element does not exist.
Inherited from
Map.delete
entries()
entries():
IterableIterator<[K,RateLimit<K>]>
Defined in: node_modules/typescript/lib/lib.es2015.iterable.d.ts:124
Returns an iterable of key, value pairs for every entry in the map.
Returns
IterableIterator<[K, RateLimit<K>]>
Inherited from
Map.entries
forEach()
forEach(
callbackfn: (value:RateLimit,key:K,map:Map<K,RateLimit<K>>) =>void,thisArg?:any):void
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:28
Executes a provided function once per each key/value pair in the Map, in insertion order.
Parameters
| Parameter | Type |
|---|---|
callbackfn | (value: RateLimit, key: K, map: Map<K, RateLimit<K>>) => void |
thisArg? | any |
Returns
void
Inherited from
Map.forEach
get()
get(
key:K):undefined|RateLimit<K>
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:33
Returns a specified element from the Map object. If the value that is associated to the provided key is an object, then you will get a reference to that object and any change made to that object will effectively modify it inside the Map.
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
undefined | RateLimit<K>
Returns the element associated with the specified key. If no element is associated with the specified key, undefined is returned.
Inherited from
Map.get
has()
has(
key:K):boolean
Defined in: node_modules/typescript/lib/lib.es2015.collection.d.ts:37
Parameters
| Parameter | Type |
|---|---|
key | K |
Returns
boolean
boolean indicating whether an element with the specified key exists or not.
Inherited from
Map.has
keys()
keys():
IterableIterator<K>
Defined in: node_modules/typescript/lib/lib.es2015.iterable.d.ts:129
Returns an iterable of keys in the map
Returns
IterableIterator<K>
Inherited from
Map.keys
set()
set(
id:K,value:RateLimit<K>):this
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:53
Wraps Collection's set method to set interval to sweep inactive RateLimits.
Parameters
| Parameter | Type | Description |
|---|---|---|
id | K | The id the RateLimit belongs to |
value | RateLimit<K> | The RateLimit to set |
Returns
this
Overrides
Map.set
sweep()
sweep():
void
Defined in: projects/utilities/packages/ratelimits/src/lib/RateLimitManager.ts:61
Wraps Collection's sweep method to clear the interval when this manager is empty.
Returns
void
values()
values():
IterableIterator<RateLimit<K>>
Defined in: node_modules/typescript/lib/lib.es2015.iterable.d.ts:134
Returns an iterable of values in the map
Returns
IterableIterator<RateLimit<K>>
Inherited from
Map.values
groupBy()
staticgroupBy<K,T>(items:Iterable<T>,keySelector: (item:T,index:number) =>K):Map<K,T[]>
Defined in: node_modules/typescript/lib/lib.esnext.collection.d.ts:25
Groups members of an iterable according to the return value of the passed callback.
Type Parameters
| Type Parameter |
|---|
K |
T |
Parameters
| Parameter | Type | Description |
|---|---|---|
items | Iterable<T> | An iterable. |
keySelector | (item: T, index: number) => K | A callback which will be invoked for each item in items. |
Returns
Map<K, T[]>
Inherited from
Map.groupBy