Skip to main content

PlatformDetector class

Platform detection service for runtime environment identification.

Signature

export declare class PlatformDetector

Remarks

This class encapsulates platform and architecture detection logic, providing a mockable abstraction over Node.js process properties. It enables testable platform-specific behaviour without requiring execution on multiple operating systems or architectures.

Key features:

  1. Dependency injection: Accepts a custom process object via constructor, enabling test environments to inject mock process implementations.
  2. Architecture coercion: Provides optional 64-bit to 32-bit architecture mapping for backward compatibility scenarios.
  3. Consistent interface: Returns standardised [PlatformInfo](/xpm-lib-ts/docs/api/xpm-lib/interfaces/platforminfo) objects for use throughout the xPack library.

This abstraction eliminates direct process.platform and process.arch access in business logic, making platform-specific code paths testable via mocked platform information.

Example 1

Default usage with actual runtime platform:

const detector = new PlatformDetector()
const info = detector.getPlatformInfo()
console.log(info.platform) // 'darwin', 'linux', or 'win32'
console.log(info.arch) // 'x64', 'arm64', etc.

Example 2

Testing with mocked platform:

const mockProcess = {
platform: 'darwin',
arch: 'arm64'
} as NodeJS.Process

const detector = new PlatformDetector(mockProcess)
const info = detector.getPlatformInfo({ doForce32bit: true })
// info.platform === 'darwin'
// info.arch === 'arm' (coerced from arm64)

Constructors

Constructor

Modifiers

Description

(constructor)(_process)

Constructs a platform detector instance.

Methods

Method

Modifiers

Description

getPlatformInfo(options)

Retrieves current platform and architecture information.

isWindows()

Checks whether the current platform is Windows.


Generated via tsdoc2docusaurus 1.3.2 by API Extractor/Documenter 7.57.2.