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 | 3x 3x | import { formatQuerystring } from "./querystring";
import type { AnyRecord } from "./types";
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();
Iif (typeof insertion === "string") url += insertion;
}
return function createUrl(queryParameters: AnyRecord = {}): string {
const querystring = formatQuerystring(queryParameters);
Iif (querystring.length > 0) url += `?${querystring}`;
return url;
};
}
|