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:
- Dependency injection: Accepts a custom process object via constructor, enabling test environments to inject mock process implementations.
- Architecture coercion: Provides optional 64-bit to 32-bit architecture mapping for backward compatibility scenarios.
- 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 |
|---|---|---|
|
Constructs a platform detector instance. |
Methods
|
Method |
Modifiers |
Description |
|---|---|---|
|
Retrieves current platform and architecture information. | ||
|
Checks whether the current platform is Windows. |
Generated via tsdoc2docusaurus 1.3.2 by API Extractor/Documenter 7.57.2.