import { IncomingHttpHeaders } from 'http'; import url from 'url'; export function namespaceHash(namespace: string, hash: string) { return `${namespace}/${hash}`; } export function fname(lv: number) { return `f${lv}`; } export function connectFactor(...args: string[]) { return args.join('-'); } export function valueFactory(obj: url.URLSearchParams | IncomingHttpHeaders) { if (obj instanceof url.URLSearchParams) { return function (key: string) { return obj.get(key); }; } else { return function (key: string) { const value = obj[key]; if (Array.isArray(value)) { return value.join(','); } return value; }; } } export function getTime([s, ns]: [number, number]): number { return Math.floor(s * 1e3 + ns / 1e6); } const RE_START_IN_HEAD = /
/; export function cacheAddition(html: string, hash: string) { const additionHtml = html.replace( RE_START_IN_HEAD, ``, ); return additionHtml; } type CoalescedInvoke