UNPKG

@hashgraph/solo

Version:

An opinionated CLI tool to deploy and manage private Hedera Networks.

56 lines (46 loc) 1.74 kB
// SPDX-License-Identifier: Apache-2.0 export enum ArchitectureType { AMD64 = 'amd64', ARM64 = 'arm64', } export class Architecture { public static readonly NODE_ARCH_X64: string = 'x64'; public static readonly NODE_ARCH_ARM64: string = 'arm64'; public static readonly NODE_ARCH_AARCH64: string = 'aarch64'; public static readonly LINUX_AMD64: string = 'linux/amd64'; public static readonly LINUX_ARM64: string = 'linux/arm64'; public static getArchitecture(rawArchitecture: string = process.arch): ArchitectureType { switch (rawArchitecture) { case Architecture.NODE_ARCH_X64: { return ArchitectureType.AMD64; } case Architecture.NODE_ARCH_ARM64: case Architecture.NODE_ARCH_AARCH64: { return ArchitectureType.ARM64; } default: { throw new Error(`Unsupported host architecture: ${rawArchitecture}`); } } } public static getLinuxPlatform(rawArchitecture: string = process.arch): string { const architecture: ArchitectureType = Architecture.getArchitecture(rawArchitecture); switch (architecture) { case ArchitectureType.AMD64: { return Architecture.LINUX_AMD64; } case ArchitectureType.ARM64: { return Architecture.LINUX_ARM64; } } } public static isAmd64(rawArchitecture: string = process.arch): boolean { return Architecture.getArchitecture(rawArchitecture) === ArchitectureType.AMD64; } public static isArm64(rawArchitecture: string = process.arch): boolean { return Architecture.getArchitecture(rawArchitecture) === ArchitectureType.ARM64; } public static getRawArchitecture(rawArchitecture: string = process.arch): string { return rawArchitecture; } }