| var requireFoolWebpack = require('./requireFoolWebpack'); |
| |
| // source: https://github.com/flexdinesh/browser-or-node |
| var isNode = function (nodeProcess) { |
| return ( |
| typeof nodeProcess !== 'undefined' && |
| nodeProcess.versions != null && |
| nodeProcess.versions.node != null |
| ); |
| } |
| module.exports.isNode = isNode |
| |
| // determines the JavaScript platform: browser or node |
| module.exports.platform = typeof process !== 'undefined' && isNode(process) |
| ? 'node' |
| : 'browser'; |
| |
| // determines whether the code is running in main thread or not |
| // note that in node.js we have to check both worker_thread and child_process |
| var worker_threads = tryRequireFoolWebpack('worker_threads'); |
| module.exports.isMainThread = module.exports.platform === 'node' |
| ? ((!worker_threads || worker_threads.isMainThread) && !process.connected) |
| : typeof Window !== 'undefined'; |
| |
| // determines the number of cpus available |
| module.exports.cpus = module.exports.platform === 'browser' |
| ? self.navigator.hardwareConcurrency |
| : requireFoolWebpack('os').cpus().length; |
| |
| function tryRequireFoolWebpack (module) { |
| try { |
| return requireFoolWebpack(module); |
| } catch(err) { |
| return null |
| } |
| } |