/** * @copyright nhcarrigan * @license Naomi's Public License * @author Naomi Carrigan */ import { inarikoSeasons } from "../../data/weather/regions/inarikoSeasons.js"; import { rudaniaSeasons } from "../../data/weather/regions/rudaniaSeasons.js"; import { vhintlSeasons } from "../../data/weather/regions/vhintlSeasons.js"; import type { RegionName } from "../../interfaces/weather/names/regionName.js"; import type { Season } from "../../interfaces/weather/names/season.js"; import type { RegionRestriction } from "../../interfaces/weather/regions/regionRestriction.js"; /** * Module to get the allowed weather for a region based on the season. * Will throw an error if the data is not found. * @param region - The name of the region. * @param season - The season the region is in. * @returns The allowed weather for the region. */ export const getRegionRestrictions = ( region: RegionName, season: Season, ): RegionRestriction | null => { let restrictions = null; switch (region) { case "Rudania": restrictions = rudaniaSeasons; break; case "Inariko": restrictions = inarikoSeasons; break; case "Vhintl": restrictions = vhintlSeasons; break; default: return null; } if (restrictions === null) { return null; } const seasonalRestriction = restrictions.find((element) => { return element.season === season; }); if (!seasonalRestriction) { return null; } return seasonalRestriction; };