@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 1.32 kB
JavaScript
var e,o,n;const r="undefined"!=typeof navigator?navigator.userAgent:"",t="undefined"!=typeof window?"browser":"undefined"!=typeof global?"node":"worker",i=/android/i.test(r)?"android":/ip(?:[ao]d|hone)/i.test(r)?"ios":/windows/i.test(r)?"windows":/mac os/i.test(r)?"osx":/linux/i.test(r)?"linux":/cros/i.test(r)?"cros":null,s="browser"!==t?null:/Chrome\/|Chromium\/|Edg.*\//.test(r)?"chrome":/Safari\//.test(r)?"safari":/Firefox\//.test(r)?"firefox":"other",a=/xbox/i.test(r),d="browser"===t&&("ontouchstart"in window||"maxTouchPoints"in navigator&&navigator.maxTouchPoints>0),l=!("browser"!==t||!navigator.getGamepads&&!navigator.webkitGetGamepads),w="undefined"!=typeof Worker,u=(()=>{let e=!1;try{const o=Object.defineProperty({},"passive",{get:function(){return e=!0,!1}});window.addEventListener("testpassive",null,o),window.removeEventListener("testpassive",null,o)}catch(e){}return e})(),b={name:i,environment:t,global:null!=(e=null!=(o=null!=(n="undefined"!=typeof globalThis&&globalThis)?n:"browser"===t&&window)?o:"node"===t&&global)?e:"worker"===t&&self,browser:"browser"===t,worker:"worker"===t,desktop:["windows","osx","linux","cros"].includes(i),mobile:["android","ios"].includes(i),ios:"ios"===i,android:"android"===i,xbox:a,gamepads:l,touch:d,workers:w,passiveEvents:u,browserName:s};export{b as platform};