frontend/.pnpm-store/v3/files/b1/07fd15c0ea5cfb7139cc6015fdad88635d2fa2883e4e70871abdc18c4a2249e0752ae6c3a868f1d43adbc4bf14f94ac5b1680655ee3a295a0b6cec718adcc6

51 lines
1.1 KiB
Plaintext

'use strict';
const os = require('os');
const macosRelease = require('macos-release');
const winRelease = require('windows-release');
const osName = (platform, release) => {
if (!platform && release) {
throw new Error('You can\'t specify a `release` without specifying `platform`');
}
platform = platform || os.platform();
let id;
if (platform === 'darwin') {
if (!release && os.platform() === 'darwin') {
release = os.release();
}
const prefix = release ? (Number(release.split('.')[0]) > 15 ? 'macOS' : 'OS X') : 'macOS';
try {
id = release ? macosRelease(release).name : '';
} catch {}
return prefix + (id ? ' ' + id : '');
}
if (platform === 'linux') {
if (!release && os.platform() === 'linux') {
release = os.release();
}
id = release ? release.replace(/^(\d+\.\d+).*/, '$1') : '';
return 'Linux' + (id ? ' ' + id : '');
}
if (platform === 'win32') {
if (!release && os.platform() === 'win32') {
release = os.release();
}
id = release ? winRelease(release) : '';
return 'Windows' + (id ? ' ' + id : '');
}
return platform;
};
module.exports = osName;