30 lines
739 B
TypeScript
30 lines
739 B
TypeScript
|
type QueryParamValue = string | number | boolean;
|
||
|
|
||
|
/**
|
||
|
* A key value mapping for params, that should be appended to the url on a new connection.
|
||
|
*/
|
||
|
export interface QueryParams {
|
||
|
[key: string]: QueryParamValue;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Formats query params for the url.
|
||
|
*
|
||
|
* @param queryParams
|
||
|
* @returns the formatted query params as string
|
||
|
*/
|
||
|
export function formatQueryParams(queryParams: QueryParams = {}): string {
|
||
|
let params = '';
|
||
|
const keys: string[] = Object.keys(queryParams);
|
||
|
if (keys.length > 0) {
|
||
|
params =
|
||
|
'?' +
|
||
|
keys
|
||
|
.map(key => {
|
||
|
return key + '=' + queryParams[key].toString();
|
||
|
})
|
||
|
.join('&');
|
||
|
}
|
||
|
return params;
|
||
|
}
|