Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | 6x 6x 82x 44x 82x 82x 126x 126x 126x 82x 82x 82x 82x 82x | import { formatQuerystring } from "./querystring";
import type { AnyRecord } from "./types";
export type URLResult = (queryParameters?: AnyRecord) => string;
/**
*
*
* @export
* @param {string[]} parts
* @param {...unknown[]} insertions
* @return {URLResult}
*/
export function url(
parts: TemplateStringsArray,
...insertions: unknown[]
): URLResult {
const safeInsertions = insertions.map((value) =>
encodeURIComponent(String(value))
);
let url = "";
for (const part of parts) {
url += part;
const insertion = safeInsertions.shift();
if (typeof insertion === "string") url += insertion;
}
/**
*
*
* @param {AnyRecord} [queryParameters={}]
* @return {string} {string}
*/
function createUrl(queryParameters: AnyRecord = {}): string {
const querystring = formatQuerystring(queryParameters);
if (querystring.length > 0) url += `?${querystring}`;
return url;
}
createUrl.toString = () => createUrl();
return createUrl as URLResult;
}
|