@jlenon7/zedjs
Version:
Riot API Library for NodeJS
61 lines (56 loc) • 1.26 kB
text/typescript
import { OptionsWithUri } from 'request'
import qs from 'querystring'
export interface IParams {
[key: string]: string | number
}
export interface IBaseApiParams {
/**
* If api response is 429 (rate limits) try reattempt after needed time (default true)
*/
rateLimitRetry?: boolean
/**
* Number of time to retry after rate limit response (default 1)
*/
rateLimitRetryAttempts?: number
/**
* Riot games api key
*/
key?: string,
/**
* Concurrency calls to riot (default infinity)
* Concurrency per method (example: summoner api, match api, etc)
*/
concurrency?: number,
/**
* Debug methods
*/
debug?: {
/**
* Log methods execution time (default false)
*/
logTime?: boolean
/**
* Log urls (default false)
*/
logUrls?: boolean
/**
* Log when is waiting for rate limits (default false)
*/
logRatelimits?: boolean
}
}
export function waiter (ms: number) {
return new Promise<void>((resolve) => {
setTimeout(() => {
resolve()
}, ms)
})
}
export function getUrlFromOptions (options: OptionsWithUri): string {
let uri = options.uri as string
if (options.qs) {
uri += '?'
uri += qs.stringify(options.qs)
}
return uri
}