39 lines · 1.1 KB · TypeScript
RawDownload
import type { DesktopRuntimeArch, DesktopRuntimeInfo } from "@t3tools/contracts"; interface ResolveDesktopRuntimeInfoInput {  readonly platform: NodeJS.Platform;  readonly processArch: string;  readonly runningUnderArm64Translation: boolean;} function normalizeDesktopArch(arch: string): DesktopRuntimeArch {  if (arch === "arm64") return "arm64";  if (arch === "x64") return "x64";  return "other";} export function resolveDesktopRuntimeInfo(  input: ResolveDesktopRuntimeInfoInput,): DesktopRuntimeInfo {  const appArch = normalizeDesktopArch(input.processArch);   if (input.platform !== "darwin") {    return {      hostArch: appArch,      appArch,      runningUnderArm64Translation: false,    };  }   const hostArch = appArch === "arm64" || input.runningUnderArm64Translation ? "arm64" : appArch;   return {    hostArch,    appArch,    runningUnderArm64Translation: input.runningUnderArm64Translation,  };} export function isArm64HostRunningIntelBuild(runtimeInfo: DesktopRuntimeInfo): boolean {  return runtimeInfo.hostArch === "arm64" && runtimeInfo.appArch === "x64";}