Files
jrshikoku/lib/getTrainType.ts
2025-08-23 16:34:29 +00:00

61 lines
1.9 KiB
TypeScript

type nameString =
| "Rapid"
| "LTDEXP"
| "NightLTDEXP"
| "SPCL"
| "Normal"
| string;
type colorString = "aqua" | "red" | "#297bff" | "#ff7300ff" | "#00869ecc" | "#727272cc" | "white" | "pink";
type trainTypeString =
| "快速"
| "特急"
| "寝台特急"
| "臨時"
| "普通列車"
| "普通列車(ワンマン)"
| "臨時快速"
| "臨時特急"
| "団体臨時"
| "貨物"
| "回送"
| "単機回送"
| "その他";
type trainTypeDataString = "rapid" | "express" | "normal" | "notService";
type getTrainType = (d: nameString) => {
color: colorString;
name: trainTypeString;
data: trainTypeDataString;
};
export const getTrainType: getTrainType = (nameString) => {
switch (nameString) {
case "Normal":
return { color: "white", name: "普通列車", data: "normal" };
case "OneMan":
return { color: "white", name: "普通列車(ワンマン)", data: "normal" };
case "Rapid":
case "OneManRapid":
return { color: "aqua", name: "快速", data: "rapid" };
case "LTDEXP":
return { color: "red", name: "特急", data: "express" };
case "NightLTDEXP":
return { color: "pink", name: "寝台特急", data: "express" };
case "SPCL":
case "SPCL_Normal":
return { color: "#297bff", name: "臨時", data: "normal" };
case "SPCL_Rapid":
return { color: "#297bff", name: "臨時快速", data: "normal" };
case "SPCL_EXP":
return { color: "#297bff", name: "臨時特急", data: "normal" };
case "Party":
return { color: "#ff7300ff", name: "団体臨時", data: "normal" };
case "Freight":
return { color: "#00869ecc", name: "貨物", data: "notService" };
case "Forwarding":
return { color: "#727272cc", name: "回送", data: "notService" };
case "FreightForwarding":
return { color: "#727272cc", name: "単機回送", data: "notService" };
default:
return { color: "white", name: "その他", data: "normal" };
}
};