| module.exports = function arch () { |
| /** |
| * User agent strings that indicate a 64-bit OS. |
| * See: http://stackoverflow.com/a/13709431/292185 |
| */ |
| var userAgent = navigator.userAgent |
| if ([ |
| 'x86_64', |
| 'x86-64', |
| 'Win64', |
| 'x64;', |
| 'amd64', |
| 'AMD64', |
| 'WOW64', |
| 'x64_64' |
| ].some(function (str) { |
| return userAgent.indexOf(str) > -1 |
| })) { |
| return 'x64' |
| } |
| |
| /** |
| * Platform strings that indicate a 64-bit OS. |
| * See: http://stackoverflow.com/a/19883965/292185 |
| */ |
| var platform = navigator.platform |
| if (platform === 'MacIntel' || platform === 'Linux x86_64') { |
| return 'x64' |
| } |
| |
| /** |
| * CPU class strings that indicate a 64-bit OS. |
| * See: http://stackoverflow.com/a/6267019/292185 |
| */ |
| if (navigator.cpuClass === 'x64') { |
| return 'x64' |
| } |
| |
| /** |
| * If none of the above, assume the architecture is 32-bit. |
| */ |
| return 'x86' |
| } |