33 lines
968 B
TypeScript
33 lines
968 B
TypeScript
// Helper function to parse memory strings (e.g., "512MB", "2GB")
|
|
export function parseMemoryString(memStr: string): number {
|
|
const units = {
|
|
KB: 1024,
|
|
MB: 1024 * 1024,
|
|
GB: 1024 * 1024 * 1024,
|
|
};
|
|
|
|
const match = memStr.toUpperCase().match(/^(\d+(?:\.\d+)?)\s*(KB|MB|GB)?$/);
|
|
if (!match) {
|
|
throw new Error(
|
|
`Invalid memory format: ${memStr}. Use format like "512MB" or "2GB"`,
|
|
);
|
|
}
|
|
|
|
const value = parseFloat(match[1]);
|
|
const unit = (match[2] || 'MB') as keyof typeof units;
|
|
|
|
return Math.floor(value * units[unit]);
|
|
}
|
|
|
|
// Helper function to format memory for display
|
|
export function formatMemory(bytes: number): string {
|
|
if (bytes >= 1024 * 1024 * 1024) {
|
|
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;
|
|
} else if (bytes >= 1024 * 1024) {
|
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
} else if (bytes >= 1024) {
|
|
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
} else {
|
|
return `${bytes} B`;
|
|
}
|
|
} |