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

100% Statements 26/26
100% Branches 1/1
100% Functions 0/0
100% Lines 26/26

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 371x 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                      
import { Url } from "../../clientUtils/urls/Url"
import {
    performUrlMigrations,
    UrlMigration,
} from "../../clientUtils/urls/UrlMigration"
import { legacyCovidMigrationSpec } from "./LegacyCovidUrlMigration"
import { co2UrlMigration } from "./CO2UrlMigration"
import { energyUrlMigration } from "./EnergyUrlMigration"
import { covidUrlMigration } from "./CovidUrlMigration"
 
export enum ExplorerUrlMigrationId {
    legacyToGridCovidExplorer = "legacyToGridCovidExplorer",
}
 
export interface ExplorerUrlMigrationSpec {
    explorerSlug: string
    migrateUrl: (url: Url, baseQueryStr: string) => Url
}
 
export const explorerUrlMigrationsById: Record<
    ExplorerUrlMigrationId,
    ExplorerUrlMigrationSpec
> = {
    legacyToGridCovidExplorer: legacyCovidMigrationSpec,
}
 
const explorerUrlMigrations: UrlMigration[] = [
    // NOTE: The order of migrations matters!
    co2UrlMigration,
    energyUrlMigration,
    covidUrlMigration,
]
 
export const migrateExplorerUrl: UrlMigration = (url: Url): Url => {
    return performUrlMigrations(explorerUrlMigrations, url)
}