import { URL } from "url"
import * as escapeRegExp from "lodash.escaperegexp"
export function newBaseUrl(url: string): URL {
const result = new URL(url)
if (!result.pathname.endsWith("/")) {
result.pathname += "/"
}
return result
}
export function newUrlFromBase(pathname: string, baseUrl: URL, addRandomQueryToAvoidCaching = false): URL {
const result = new URL(pathname, baseUrl)
const search = baseUrl.search
if (search != null && search.length !== 0) {
result.search = search
} else if (addRandomQueryToAvoidCaching) {
result.search = `noCache=${Date.now().toString(32)}`
}
return result
}
export function getChannelFilename(channel: string): string {
return `${channel}.yml`
}
export function blockmapFiles(baseUrl: URL, oldVersion: string, newVersion: string): URL[] {
const newBlockMapUrl = newUrlFromBase(`${baseUrl.pathname}.blockmap`, baseUrl)
const oldBlockMapUrl = newUrlFromBase(`${baseUrl.pathname.replace(new RegExp(escapeRegExp(newVersion), "g"), oldVersion)}.blockmap`, baseUrl)
return [oldBlockMapUrl, newBlockMapUrl]
}