signal-desktop/ts/OS.ts

32 lines
819 B
TypeScript
Raw Normal View History

2020-10-30 15:34:04 -05:00
// Copyright 2018-2020 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
2018-05-02 19:57:02 -04:00
import is from '@sindresorhus/is';
import os from 'os';
import semver from 'semver';
2020-09-11 12:37:01 -07:00
export const isMacOS = (): boolean => process.platform === 'darwin';
export const isLinux = (): boolean => process.platform === 'linux';
export const isWindows = (minVersion?: string): boolean => {
2018-05-02 19:57:02 -04:00
const osRelease = os.release();
2018-05-23 16:04:39 -07:00
if (process.platform !== 'win32') {
return false;
}
return is.undefined(minVersion) ? true : semver.gte(osRelease, minVersion);
2018-05-02 19:57:02 -04:00
};
export const isLegacy = (): boolean => {
if (process.platform === 'darwin') {
// 17.0.0 - is macOS 10.13
return semver.lt(os.release(), '17.0.0');
}
if (process.platform === 'win32') {
return semver.lt(os.release(), '9.0.0');
}
return false;
};