UNPKG

woolball-client

Version:

Client-side library for Woolball enabling secure browser resource sharing for distributed AI task processing

52 lines (51 loc) 1.96 kB
"use strict"; /** * Browser compatibility detection module * Provides utilities to check if the browser is compatible with browser-node */ Object.defineProperty(exports, "__esModule", { value: true }); exports.initBrowserCompatibility = exports.verifyBrowserCompatibility = exports.isChromeBased = exports.BrowserCompatibilityError = void 0; /** * Error thrown when browser is not compatible with browser-node */ class BrowserCompatibilityError extends Error { constructor(message) { super(message); this.name = 'BrowserCompatibilityError'; } } exports.BrowserCompatibilityError = BrowserCompatibilityError; /** * Checks if the current browser is Chrome-based * @returns {boolean} True if browser is Chrome-based, false otherwise */ function isChromeBased() { if (typeof window === 'undefined' || !window.navigator) { // Not in a browser environment return false; } const userAgent = window.navigator.userAgent.toLowerCase(); return (userAgent.includes('chrome') || userAgent.includes('chromium') || userAgent.includes('edge')); } exports.isChromeBased = isChromeBased; /** * Verifies browser compatibility and throws an error if not compatible * @throws {BrowserCompatibilityError} If browser is not Chrome-based */ function verifyBrowserCompatibility() { if (!isChromeBased()) { throw new BrowserCompatibilityError('browser-node is only compatible with Chrome-based browsers. ' + 'Please use Chrome, Chromium, Edge, or another Chrome-based browser.'); } } exports.verifyBrowserCompatibility = verifyBrowserCompatibility; // Automatically verify browser compatibility when the library is loaded // Skip verification during testing function initBrowserCompatibility() { if (typeof window !== 'undefined' && process.env.NODE_ENV !== 'test') { verifyBrowserCompatibility(); } } exports.initBrowserCompatibility = initBrowserCompatibility;