UNPKG

@utilify/environment

Version:

A utility library for detecting the runtime environment (Node.js, browser, Deno, etc.) and various environment-specific properties.

2 lines (1 loc) 1.34 kB
"use strict";function e(){return"object"==typeof Bun&&Object.hasOwn(Bun,"version")}function n(){return"object"==typeof Deno&&Object.hasOwn(Deno,"version")}function o(){return"undefined"!=typeof global&&"undefined"!=typeof process}function r(){return o()||n()||e()||"undefined"==typeof window}function t(){return"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope}function i(){return"undefined"!=typeof SharedWorkerGlobalScope&&self instanceof SharedWorkerGlobalScope}function s(){return"undefined"!=typeof ServiceWorkerGlobalScope&&self instanceof ServiceWorkerGlobalScope}exports.getOS=function(){if(!r())return;if("userAgentData"in navigator)return navigator.userAgentData.platform;const e=navigator.userAgent;return/Android/i.test(e)?"Android":/iPhone|iPad|iPod/i.test(e)?"iOS":/Linux/i.test(e)?"Linux":/Windows/i.test(e)?"Windows":/Mac/i.test(e)?"macOS":"Unknown"},exports.isBrowser=function(){return"undefined"!=typeof window&&"undefined"!=typeof document},exports.isBun=e,exports.isDedicatedWorker=t,exports.isDeno=n,exports.isMobile=function(){if(!r())return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},exports.isNode=o,exports.isServer=r,exports.isServiceWorker=s,exports.isSharedWorker=i,exports.isWebWorker=function(){return t()||i()||s()};