4652a92c29
Embed Six Flags API IDs directly in the park registry and snapshot coaster lists from park-meta.json into a TypeScript module. This eliminates the Playwright-based discovery script, RCDB scraper, and runtime dependency on park-meta.json — preparing for the backend API transition. - Add apiId field to Park type and all 24 park entries - Create lib/coaster-data.ts with hardcoded coaster lists - Update page components to use park.apiId and new getCoasterSet() - Remove scripts/discover.ts, lib/scrapers/rcdb.ts, lib/park-meta.ts - Remove data/park-meta.json from shared volume - Remove playwright devDependency and discover npm script - Simplify scripts/scrape.ts (no RCDB, no discovery checks) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
333 lines
6.6 KiB
TypeScript
333 lines
6.6 KiB
TypeScript
import { normalizeForMatch } from "./coaster-match";
|
|
|
|
export const COASTER_LISTS: Record<string, string[]> = {
|
|
greatadventure: [
|
|
"Superman - Ultimate Flight",
|
|
"El Toro",
|
|
"Dark Knight",
|
|
"Joker",
|
|
"Jersey Devil Coaster",
|
|
"Lil' Devil Coaster",
|
|
"Flash: Vertical Velocity",
|
|
"Batman The Ride",
|
|
"Skull Mountain",
|
|
"Runaway Mine Train",
|
|
"Medusa",
|
|
"Harley Quinn Crazy Train",
|
|
"Nitro",
|
|
],
|
|
magicmountain: [
|
|
"Ninja",
|
|
"New Revolution",
|
|
"Batman The Ride",
|
|
"Viper",
|
|
"Gold Rusher",
|
|
"Riddler's Revenge",
|
|
"Canyon Blaster",
|
|
"Goliath",
|
|
"X2",
|
|
"Scream!",
|
|
"Tatsu",
|
|
"Apocalypse the Ride",
|
|
"Road Runner Express",
|
|
"Speedy Gonzales Hot Rod Racers",
|
|
"Full Throttle",
|
|
"Twisted Colossus",
|
|
"West Coast Racers",
|
|
"Wonder Woman Flight of Courage",
|
|
],
|
|
greatamerica: [
|
|
"Demon",
|
|
"Batman The Ride",
|
|
"American Eagle",
|
|
"Viper",
|
|
"Whizzer",
|
|
"Sprocket Rockets",
|
|
"Raging Bull",
|
|
"Flash: Vertical Velocity",
|
|
"Superman - Ultimate Flight",
|
|
"Dark Knight",
|
|
"Little Dipper",
|
|
"Goliath",
|
|
"X-Flight",
|
|
"Joker",
|
|
"Maxx Force",
|
|
"Wrath of Rakshasa",
|
|
],
|
|
overgeorgia: [
|
|
"Blue Hawk",
|
|
"Great American Scream Machine",
|
|
"Dahlonega Mine Train",
|
|
"Batman The Ride",
|
|
"Georgia Scorcher",
|
|
"Superman - Ultimate Flight",
|
|
"Joker Funhouse Coaster",
|
|
"Goliath",
|
|
"Dare Devil Dive",
|
|
"Twisted Cyclone",
|
|
"Riddler Mindbender",
|
|
"Georgia Gold Rusher",
|
|
],
|
|
overtexas: [
|
|
"Pandemonium",
|
|
"New Texas Giant",
|
|
"Joker",
|
|
"Aquaman: Power Wave",
|
|
"Shock Wave",
|
|
"Judge Roy Scream",
|
|
"Runaway Mine Train",
|
|
"Runaway Mountain",
|
|
"Mini Mine Train",
|
|
"Mr. Freeze",
|
|
"Batman The Ride",
|
|
"Titan",
|
|
"Wile E. Coyote's Grand Canyon Blaster",
|
|
],
|
|
stlouis: [
|
|
"Ninja",
|
|
"River King Mine Train",
|
|
"Mr. Freeze Reverse Blast",
|
|
"Batman The Ride",
|
|
"Screamin' Eagle",
|
|
"Boss",
|
|
"Pandemonium",
|
|
"American Thunder",
|
|
"Boomerang",
|
|
"Rookie Racer",
|
|
],
|
|
fiestatexas: [
|
|
"Batgirl Coaster Chase",
|
|
"Road Runner Express",
|
|
"Poltergeist",
|
|
"Boomerang Coast to Coaster",
|
|
"Superman Krypton Coaster",
|
|
"Pandemonium",
|
|
"Chupacabra",
|
|
"Iron Rattler",
|
|
"Batman The Ride",
|
|
"Wonder Woman Golden Lasso Coaster",
|
|
"Dr. Diabolical's Cliffhanger",
|
|
],
|
|
newengland: [
|
|
"Joker",
|
|
"Thunderbolt",
|
|
"Great Chase",
|
|
"Riddler Revenge",
|
|
"Superman the Ride",
|
|
"Flashback",
|
|
"Catwoman's Whip",
|
|
"Pandemonium",
|
|
"Batman - The Dark Knight",
|
|
"Wicked Cyclone",
|
|
"Gotham City Gauntlet Escape from Arkham Asylum",
|
|
],
|
|
discoverykingdom: [
|
|
"Roadrunner Express",
|
|
"Medusa",
|
|
"Cobra",
|
|
"Flash: Vertical Velocity",
|
|
"Kong",
|
|
"Boomerang",
|
|
"Superman Ultimate Flight",
|
|
"Joker",
|
|
"Batman The Ride",
|
|
"Sidewinder Safari",
|
|
],
|
|
mexico: [
|
|
"Tsunami",
|
|
"Superman Krypton Coaster",
|
|
"Batgirl Batarang",
|
|
"Batman The Ride",
|
|
"Superman el Último Escape",
|
|
"Dark Knight",
|
|
"Joker",
|
|
"Medusa Steel Coaster",
|
|
"Wonder Woman",
|
|
"Speedway Stunt Coaster",
|
|
],
|
|
greatescape: [
|
|
"Comet",
|
|
"Steamin' Demon",
|
|
"Flashback",
|
|
"Canyon Blaster",
|
|
"Frankie's Mine Train",
|
|
"Bobcat",
|
|
],
|
|
darienlake: [
|
|
"Predator",
|
|
"Viper",
|
|
"Mind Eraser",
|
|
"Boomerang",
|
|
"Ride of Steel",
|
|
"Hoot N Holler",
|
|
"Moto Coaster",
|
|
"Tantrum",
|
|
],
|
|
cedarpoint: [
|
|
"Raptor",
|
|
"Rougarou",
|
|
"Magnum XL-200",
|
|
"Blue Streak",
|
|
"Corkscrew",
|
|
"Gemini",
|
|
"Wilderness Run",
|
|
"Woodstock Express",
|
|
"Millennium Force",
|
|
"Iron Dragon",
|
|
"Cedar Creek Mine Ride",
|
|
"Maverick",
|
|
"GateKeeper",
|
|
"Valravn",
|
|
"Steel Vengeance",
|
|
"Top Thrill 2",
|
|
"Wild Mouse",
|
|
"Siren's Curse",
|
|
],
|
|
knotts: [
|
|
"Jaguar!",
|
|
"GhostRider",
|
|
"Xcelerator",
|
|
"Silver Bullet",
|
|
"Sierra Sidewinder",
|
|
"Pony Express",
|
|
"Coast Rider",
|
|
"HangTime",
|
|
"Snoopy's Tenderpaw Twister Coaster",
|
|
],
|
|
canadaswonderland: [
|
|
"Flight Deck",
|
|
"Dragon Fyre",
|
|
"Mighty Canadian Minebuster",
|
|
"Wilde Beast",
|
|
"Ghoster Coaster",
|
|
"Thunder Run",
|
|
"Bat",
|
|
"Vortex",
|
|
"Taxi Jam",
|
|
"Fly",
|
|
"Silver Streak",
|
|
"Backlot Stunt Coaster",
|
|
"Behemoth",
|
|
"Leviathan",
|
|
"Wonder Mountain's Guardian",
|
|
"Yukon Striker",
|
|
"Snoopy's Racing Railway",
|
|
"AlpenFury",
|
|
],
|
|
carowinds: [
|
|
"Carolina Cyclone",
|
|
"Woodstock Express",
|
|
"Carolina Goldrusher",
|
|
"Hurler",
|
|
"Vortex",
|
|
"Wilderness Run",
|
|
"Afterburn",
|
|
"Flying Cobras",
|
|
"Thunder Striker",
|
|
"Fury 325",
|
|
"Copperhead Strike",
|
|
"Snoopy's Racing Railway",
|
|
"Ricochet",
|
|
"Kiddy Hawk",
|
|
],
|
|
kingsdominion: [
|
|
"Racer 75",
|
|
"Woodstock Express",
|
|
"Grizzly",
|
|
"Flight of Fear",
|
|
"Reptilian",
|
|
"Great Pumpkin Coaster",
|
|
"Apple Zapple",
|
|
"Backlot Stunt Coaster",
|
|
"Dominator",
|
|
"Pantherian",
|
|
"Twisted Timbers",
|
|
"Tumbili",
|
|
"Rapterra",
|
|
],
|
|
kingsisland: [
|
|
"Flight of Fear",
|
|
"Beast",
|
|
"Racer",
|
|
"Adventure Express",
|
|
"Woodstock Express",
|
|
"Bat",
|
|
"Great Pumpkin Coaster",
|
|
"Invertigo",
|
|
"Diamondback",
|
|
"Banshee",
|
|
"Orion",
|
|
"Mystic Timbers",
|
|
"Snoopy's Soap Box Racers",
|
|
"Woodstock's Air Rail",
|
|
"Queen City Stunt Coaster",
|
|
],
|
|
valleyfair: [
|
|
"High Roller",
|
|
"Corkscrew",
|
|
"Excalibur",
|
|
"Wild Thing",
|
|
"Mad Mouse",
|
|
"Steel Venom",
|
|
"Renegade",
|
|
"Cosmic Coaster",
|
|
],
|
|
worldsoffun: [
|
|
"Timber Wolf",
|
|
"Cosmic Coaster",
|
|
"Mamba",
|
|
"Spinning Dragons",
|
|
"Patriot",
|
|
"Prowler",
|
|
"Zambezi Zinger",
|
|
"Boomerang",
|
|
],
|
|
miadventure: [
|
|
"Corkscrew",
|
|
"Wolverine Wildcat",
|
|
"Zach's Zoomer",
|
|
"Shivering Timbers",
|
|
"Mad Mouse",
|
|
"Thunderhawk",
|
|
"Woodstock Express",
|
|
],
|
|
dorneypark: [
|
|
"Thunderhawk",
|
|
"Steel Force",
|
|
"Wild Mouse",
|
|
"Woodstock Express",
|
|
"Talon",
|
|
"Hydra the Revenge",
|
|
"Possessed",
|
|
"Iron Menace",
|
|
],
|
|
cagreatamerica: [
|
|
"Demon",
|
|
"Grizzly",
|
|
"Woodstock Express",
|
|
"Patriot",
|
|
"Flight Deck",
|
|
"Lucy's Crabbie Cabbies",
|
|
"Psycho Mouse",
|
|
"Gold Striker",
|
|
"RailBlazer",
|
|
],
|
|
frontiercity: [
|
|
"Silver Bullet",
|
|
"Wildcat",
|
|
"Diamondback",
|
|
"Steel Lasso",
|
|
"Frankie's Mine Train",
|
|
],
|
|
};
|
|
|
|
export function getCoasterSet(parkId: string): Set<string> | null {
|
|
const coasters = COASTER_LISTS[parkId];
|
|
if (!coasters || coasters.length === 0) return null;
|
|
return new Set(coasters.map(normalizeForMatch));
|
|
}
|
|
|
|
export function hasCoasterData(): boolean {
|
|
return Object.values(COASTER_LISTS).some((list) => list.length > 0);
|
|
}
|