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 | 1x 1x 1x 1x 1x 1x 8x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 13x 11x 11x 13x 13x | import { QueryParams } from "../../clientUtils/urls/UrlUtils"
import { Url } from "../../clientUtils/urls/Url"
import { EXPLORERS_ROUTE_FOLDER } from "../ExplorerConstants"
import { identity, omit } from "../../clientUtils/Util"
export const decodeURIComponentOrUndefined = (value: string | undefined) =>
value !== undefined
? decodeURIComponent(value.replace(/\+/g, "%20"))
: undefined
export type QueryParamTransformMap = Record<
string,
{
newName?: string
transformValue?: (value: string | undefined) => string | undefined
}
>
export const transformQueryParams = (
oldQueryParams: Readonly<QueryParams>,
transformMap: QueryParamTransformMap
) => {
const newQueryParams = omit(
oldQueryParams,
...Object.keys(transformMap)
) as QueryParams
for (const oldParamName in transformMap) {
if (!(oldParamName in oldQueryParams)) continue
const { newName, transformValue } = transformMap[oldParamName]
const name = newName ?? oldParamName
const transform = transformValue ?? identity
newQueryParams[name] = transform(oldQueryParams[oldParamName])
}
return newQueryParams
}
export const getExplorerSlugFromUrl = (url: Url): string | undefined => {
if (!url.pathname) return undefined
const match = url.pathname.match(
new RegExp(`^\/+${EXPLORERS_ROUTE_FOLDER}\/+([^\/]+)`)
)
if (match && match[1]) return match[1]
return undefined
}
|