edge-tts-universal
Version:
Universal text-to-speech library using Microsoft Edge's online TTS service. Works in Node.js and browsers WITHOUT needing Microsoft Edge, Windows, or an API key
1 lines • 6.28 kB
Source Map (JSON)
{"version":3,"sources":["../src/runtime-detection.ts"],"names":[],"mappings":"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","file":"runtime-detection.cjs","sourcesContent":["/**\n * Runtime detection utilities for cross-platform compatibility\n */\n\nexport interface RuntimeInfo {\n name: 'node' | 'deno' | 'bun' | 'browser' | 'webworker' | 'unknown';\n version?: string;\n isNode: boolean;\n isDeno: boolean;\n isBun: boolean;\n isBrowser: boolean;\n isWebWorker: boolean;\n}\n\n/**\n * Detect the current JavaScript runtime environment\n */\nexport function detectRuntime(): RuntimeInfo {\n const info: RuntimeInfo = {\n name: 'unknown',\n isNode: false,\n isDeno: false,\n isBun: false,\n isBrowser: false,\n isWebWorker: false,\n };\n\n // Check for Deno\n if (typeof (globalThis as any).Deno !== 'undefined') {\n info.name = 'deno';\n info.isDeno = true;\n info.version = (globalThis as any).Deno.version?.deno;\n return info;\n }\n\n // Check for Bun\n if (typeof (globalThis as any).Bun !== 'undefined') {\n info.name = 'bun';\n info.isBun = true;\n info.version = (globalThis as any).Bun.version;\n return info;\n }\n\n // Check for Node.js\n if (typeof process !== 'undefined' && process.versions && process.versions.node) {\n info.name = 'node';\n info.isNode = true;\n info.version = process.versions.node;\n return info;\n }\n\n // Check for Web Worker\n if (typeof (globalThis as any).importScripts === 'function' && typeof (globalThis as any).WorkerGlobalScope !== 'undefined') {\n info.name = 'webworker';\n info.isWebWorker = true;\n return info;\n }\n\n // Check for Browser\n if (typeof window !== 'undefined') {\n info.name = 'browser';\n info.isBrowser = true;\n return info;\n }\n\n return info;\n}\n\n/**\n * Get the appropriate fetch implementation for the current runtime\n */\nexport function getFetch(): typeof fetch {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.fetch;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n // Try using built-in fetch first (Node 18+, Bun)\n if (typeof globalThis.fetch !== 'undefined') {\n return globalThis.fetch;\n }\n // Fallback to cross-fetch for older Node versions\n return require('cross-fetch');\n } catch {\n throw new Error('No fetch implementation available. Please install cross-fetch.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n}\n\n/**\n * Get the appropriate WebSocket implementation for the current runtime\n */\nexport function getWebSocket(): any {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.WebSocket;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n return require('isomorphic-ws');\n } catch {\n throw new Error('No WebSocket implementation available. Please install isomorphic-ws.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n}\n\n/**\n * Get runtime-specific crypto implementation\n */\nexport function getCrypto(): Crypto {\n const runtime = detectRuntime();\n\n if (runtime.isDeno || runtime.isBrowser || runtime.isWebWorker) {\n return globalThis.crypto;\n }\n\n if (runtime.isNode || runtime.isBun) {\n try {\n // Node.js 16+ has built-in crypto.webcrypto\n if (typeof globalThis.crypto !== 'undefined') {\n return globalThis.crypto;\n }\n // Fallback for older Node versions\n return require('isomorphic-webcrypto');\n } catch {\n throw new Error('No crypto implementation available. Please install isomorphic-webcrypto.');\n }\n }\n\n throw new Error('Unsupported runtime environment');\n} "]}