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
JavaScript
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;
}
;