UNPKG

shellx-ai

Version:

shellx is a powerful WebSocket-based client for controlling shell commands and UI automation on remote devices.

82 lines (81 loc) 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.wait = void 0; exports.getEnvVar = getEnvVar; exports.setEnvVar = setEnvVar; exports.deleteEnvVar = deleteEnvVar; exports.getWebSocketUrl = getWebSocketUrl; const wait = (ms) => new Promise(resolve => setTimeout(resolve, ms)); exports.wait = wait; /** * 安全地获取环境变量,兼容浏览器和Node.js环境 */ function getEnvVar(key) { if (typeof process !== 'undefined' && process.env) { return process.env[key]; } else if (typeof window !== 'undefined' && window.localStorage) { const item = window.localStorage.getItem(key); if (item) { console.log("已从 localStorage 中获取环境变量:", key); return item; } } return undefined; } /** * 安全地设置环境变量,兼容浏览器和Node.js环境 */ function setEnvVar(key, value) { if (typeof process !== 'undefined' && process.env) { process.env[key] = value; } else if (typeof window !== 'undefined' && window.localStorage) { window.localStorage.setItem(key, value); console.log("已保存环境变量:", key, value); } } /** * 安全地删除环境变量,兼容浏览器和Node.js环境 */ function deleteEnvVar(key) { if (typeof process !== 'undefined' && process.env) { delete process.env[key]; } else if (typeof window !== 'undefined' && window.localStorage) { window.localStorage.removeItem(key); console.log("已删除环境变量:", key); } } /** * 检查并获取 WebSocket URL 环境变量 * 如果未设置则显示错误并抛出异常 */ function getWebSocketUrl() { // 安全地获取环境变量,兼容浏览器和Node.js环境 const wsUrl = getEnvVar('WEBSOCKET_URL'); if (!wsUrl || wsUrl.trim() === '') { const errorMessage = '❌ 错误: 未设置 WEBSOCKET_URL 环境变量!\n\n📋 解决方案:\n1. 在项目根目录创建 .env 文件\n2. 在 .env 文件中添加以下内容:\n WEBSOCKET_URL=ws://127.0.0.1:9091/api/s/your-session-id\n\n💡 提示:\n- 请将 your-session-id 替换为实际的会话ID\n- 确保 ShellX 服务器正在运行\n- 检查端口号是否正确(默认9091)'; console.error(errorMessage); // 在Node.js环境中退出,在浏览器环境中抛出异常 if (typeof process !== 'undefined' && process.exit) { process.exit(1); } else { throw new Error(errorMessage); } } // 简单的 URL 格式验证 if (!wsUrl.startsWith('ws://') && !wsUrl.startsWith('wss://')) { const errorMessage = `❌ 错误: WEBSOCKET_URL 格式不正确!\n当前值: ${wsUrl}\n应该以 ws:// 或 wss:// 开头\n例如: ws://127.0.0.1:9091/api/s/your-session-id`; console.error(errorMessage); // 在Node.js环境中退出,在浏览器环境中抛出异常 if (typeof process !== 'undefined' && process.exit) { process.exit(1); } else { throw new Error(errorMessage); } } return wsUrl; }