@ayonli/jsext
Version:
A JavaScript extension package for building strong and modern applications.
42 lines (39 loc) • 1.98 kB
JavaScript
;
var _a, _b;
const id = Symbol.for("id");
const isBrowserWindow = typeof window === "object"
&& typeof window.document === "object"
&& typeof window.matchMedia === "function";
const isServiceWorker = typeof ServiceWorkerGlobalScope === "function"
&& globalThis instanceof ServiceWorkerGlobalScope;
const isSharedWorker = typeof SharedWorkerGlobalScope === "function"
&& globalThis instanceof SharedWorkerGlobalScope;
const isDedicatedWorker = typeof DedicatedWorkerGlobalScope === "function"
&& globalThis instanceof DedicatedWorkerGlobalScope;
const isWorker = isServiceWorker || isSharedWorker || isDedicatedWorker;
const isDeno = typeof Deno === "object" && !!((_a = Deno.version) === null || _a === void 0 ? void 0 : _a.deno);
const isBun = typeof Bun === "object" && !!Bun.version;
const isNodeLike = typeof process === "object" && !!((_b = process.versions) === null || _b === void 0 ? void 0 : _b.node) && !isDeno;
const isNode = isNodeLike && !isDeno && !isBun;
const isNodeBelow14 = isNode && parseInt(process.version.slice(1)) < 14;
const isNodeBelow16 = isNode && parseInt(process.version.slice(1)) < 16;
const isNodeBelow20 = isNode && parseInt(process.version.slice(1)) < 20;
const isNodeWorkerThread = isNode
&& (process.abort.disabled === true || process.argv.includes("--worker-thread"));
const isMainThread = !isNodeWorkerThread
&& (isBun ? Bun.isMainThread : typeof WorkerGlobalScope === "undefined");
exports.id = id;
exports.isBrowserWindow = isBrowserWindow;
exports.isBun = isBun;
exports.isDedicatedWorker = isDedicatedWorker;
exports.isDeno = isDeno;
exports.isMainThread = isMainThread;
exports.isNode = isNode;
exports.isNodeBelow14 = isNodeBelow14;
exports.isNodeBelow16 = isNodeBelow16;
exports.isNodeBelow20 = isNodeBelow20;
exports.isNodeLike = isNodeLike;
exports.isServiceWorker = isServiceWorker;
exports.isSharedWorker = isSharedWorker;
exports.isWorker = isWorker;
//# sourceMappingURL=env.js.map