diff --git a/assets/src/models/shuttle.ts b/assets/src/models/shuttle.ts index 026b99e9e..7eced30c9 100644 --- a/assets/src/models/shuttle.ts +++ b/assets/src/models/shuttle.ts @@ -1,4 +1,48 @@ -import { Vehicle } from "../realtime" +import { RunId, Vehicle } from "../realtime" + +export enum ShuttleVariant { + // Rapid Transit Lines + Blue = "Blue", + Green = "Green", + Orange = "Orange", + Red = "Red", + + // Other Shuttle Types + CommuterRail = "CR", + Special = "Special", +} + +export const shuttleVariantFromRunId = ( + runId: RunId +): ShuttleVariant | null => { + switch (runId) { + case "999-0501": + return ShuttleVariant.Blue + case "999-0502": + return ShuttleVariant.Green + case "999-0503": + return ShuttleVariant.Orange + case "999-0504": + return ShuttleVariant.Red + case "999-0505": + return ShuttleVariant.CommuterRail + case "999-0555": + return ShuttleVariant.Special + default: + return null + } +} + +const prefix = (variant: ShuttleVariant | null): string => { + switch (variant) { + case null: + return "" + case ShuttleVariant.CommuterRail: + return "Commuter Rail " + default: + return variant + " " + } +} export const formattedRunNumber = ({ runId }: Vehicle): string => { if (runId === null) { @@ -8,24 +52,5 @@ export const formattedRunNumber = ({ runId }: Vehicle): string => { const [area, run] = runId.split("-") // Remove leading zero from the run portion - return `${prefix(run)}${area} ${run.slice(1)}` -} - -const prefix = (run: string): string => { - switch (run) { - case "0501": - return "Blue " - case "0502": - return "Green " - case "0503": - return "Orange " - case "0504": - return "Red " - case "0505": - return "Commuter Rail " - case "0555": - return "Special " - default: - return "" - } + return `${prefix(shuttleVariantFromRunId(runId))}${area} ${run.slice(1)}` }