chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
export type NormalizedRuntime = "node" | "bun";
|
||||
|
||||
export interface ParsedRuntime {
|
||||
/** The normalized runtime type */
|
||||
runtime: NormalizedRuntime;
|
||||
/** The original runtime string */
|
||||
originalRuntime: string;
|
||||
/** The display name for the runtime */
|
||||
displayName: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a runtime string and returns normalized runtime information
|
||||
*/
|
||||
export function parseRuntime(runtime: string | null | undefined): ParsedRuntime | null {
|
||||
if (!runtime) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Normalize runtime strings
|
||||
let normalizedRuntime: NormalizedRuntime;
|
||||
let displayName: string;
|
||||
|
||||
if (runtime.startsWith("bun")) {
|
||||
normalizedRuntime = "bun";
|
||||
displayName = "Bun";
|
||||
} else if (runtime.startsWith("node")) {
|
||||
normalizedRuntime = "node";
|
||||
displayName = "Node.js";
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
runtime: normalizedRuntime,
|
||||
originalRuntime: runtime,
|
||||
displayName,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats runtime with version for display
|
||||
*/
|
||||
export function formatRuntimeWithVersion(
|
||||
runtime: string | null | undefined,
|
||||
version: string | null | undefined
|
||||
): string {
|
||||
const parsed = parseRuntime(runtime);
|
||||
if (!parsed) {
|
||||
return "Unknown runtime";
|
||||
}
|
||||
|
||||
if (version) {
|
||||
return `${parsed.displayName} v${version}`;
|
||||
}
|
||||
|
||||
return parsed.displayName;
|
||||
}
|
||||
Reference in New Issue
Block a user