All files / owid-grapher/explorer/urlMigrations EnergyUrlMigration.ts

100% Statements 35/35
100% Branches 3/3
100% Functions 1/1
100% Lines 35/35

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 431x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x                
import { legacyToCurrentGrapherUrl } from "../../grapher/core/GrapherUrlMigrations"
import { Url } from "../../clientUtils/urls/Url"
import { UrlMigration } from "../../clientUtils/urls/UrlMigration"
import {
    decodeURIComponentOrUndefined,
    getExplorerSlugFromUrl,
    QueryParamTransformMap,
    transformQueryParams,
} from "./ExplorerUrlMigrationUtils"
 
const EXPLORER_SLUG = "energy"
 
const energyQueryParamTransformMap: QueryParamTransformMap = {
    "Total or Breakdown ": {
        newName: "Total or Breakdown",
        transformValue: decodeURIComponentOrUndefined,
    },
    "Select a source ": {
        newName: "Select a source",
        transformValue: decodeURIComponentOrUndefined,
    },
    "Energy or Electricity ": {
        newName: "Energy or Electricity",
        transformValue: decodeURIComponentOrUndefined,
    },
    "Metric ": {
        newName: "Metric",
        transformValue: decodeURIComponentOrUndefined,
    },
}
 
export const energyUrlMigration: UrlMigration = (url: Url) => {
    // if it's not the /explorer/energy path, skip it
    const explorerSlug = getExplorerSlugFromUrl(url)
    if (explorerSlug !== EXPLORER_SLUG) return url
    url = legacyToCurrentGrapherUrl(url)
    const queryParams = transformQueryParams(
        url.queryParams,
        energyQueryParamTransformMap
    )
    return url.setQueryParams(queryParams)
}