This repository has been archived on 2025-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Files
tingle-bot/src/modules/weather/getRegionRestrictions.ts

53 lines
1.5 KiB
TypeScript

/**
* @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;
};