ffffng/server/shared/utils/strings.ts

33 lines
810 B
TypeScript
Raw Normal View History

2022-08-23 22:14:54 +02:00
import { isString, type MAC } from "../types";
2022-07-22 17:10:39 +02:00
export function normalizeString(str: string): string {
return isString(str) ? str.trim().replace(/\s+/g, " ") : str;
}
2022-07-22 17:10:39 +02:00
export function normalizeMac(mac: MAC): MAC {
// parts only contains values at odd indexes
const parts = mac
.toUpperCase()
.replace(/[-:]/g, "")
.split(/([A-F0-9]{2})/);
const macParts = [];
for (let i = 1; i < parts.length; i += 2) {
macParts.push(parts[i]);
}
return macParts.join(":") as MAC;
}
2022-07-22 17:10:39 +02:00
export function parseInteger(str: string): number {
const parsed = parseInt(str, 10);
2022-07-18 17:49:42 +02:00
if (parsed.toString() === str) {
return parsed;
} else {
throw new SyntaxError(
`String does not represent a valid integer: "${str}"`
);
2022-07-18 17:49:42 +02:00
}
}