21 lines
586 B
TypeScript
21 lines
586 B
TypeScript
|
|
// Generic plan code formatter for SIM plans
|
||
|
|
// Examples:
|
||
|
|
// - PASI_10G -> 10G
|
||
|
|
// - PASI_25G -> 25G
|
||
|
|
// - ANY_PREFIX_50GB -> 50G
|
||
|
|
// - Fallback: return the original code when unknown
|
||
|
|
|
||
|
|
export function formatPlanShort(planCode?: string): string {
|
||
|
|
if (!planCode) return "—";
|
||
|
|
const m = planCode.match(/(?:^|[_-])(\d+(?:\.\d+)?)\s*G(?:B)?\b/i);
|
||
|
|
if (m && m[1]) {
|
||
|
|
return `${m[1]}G`;
|
||
|
|
}
|
||
|
|
// Try extracting trailing number+G anywhere in the string
|
||
|
|
const m2 = planCode.match(/(\d+(?:\.\d+)?)\s*G(?:B)?\b/i);
|
||
|
|
if (m2 && m2[1]) {
|
||
|
|
return `${m2[1]}G`;
|
||
|
|
}
|
||
|
|
return planCode;
|
||
|
|
}
|