module.exports = function (platform, release) { if (!platform && release) { throw new Error('You can\'t specify a `release` without specfying `platform`'); } platform = platform || os.platform(); release = release || os.release(); var id; if (platform === 'darwin') { id = osxRelease(release).name; return 'OS X' + (id ? ' ' + id : ''); } if (platform === 'linux') { id = release.replace(/^(\d+\.\d+).*/, '$1'); return 'Linux' + (id ? ' ' + id : ''); } if (platform === 'win32') { id = winRelease(release); return 'Windows' + (id ? ' ' + id : ''); } return platform; };
track(name, data) { if (!name) { return; } const payload = data || {}; if (window.localStorage.getItem('metrics.enabled') !== 'true') { return; } let id = window.localStorage.getItem('metrics.id'); if (!id) { id = uuid.v4(); window.localStorage.setItem('metrics.id', id); } const osName = os.platform(); const osVersion = util.isWindows() ? os.release() : osxRelease(os.release()).version; mixpanel.track(name, assign({ distinct_id: id, version: util.packagejson().version, 'Operating System': osName, 'Operating System Version': osVersion, 'Operating System Architecture': os.arch() }, payload)); }, };