@aiot-toolkit/emulator
Version:
vela emulator tool.
128 lines (124 loc) • 5.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.emulatorBaseUrl = exports.defaultVvdHome = exports.defaultVncPort = exports.defaultToolsHome = exports.defaultSkinHome = exports.defaultSDKHome = exports.defaultQuickappHome = exports.defaultImageHome = exports.defaultEmulatorHome = exports.defaultDebugPort = exports.defaultAdbPort = exports.baseUrl = exports.VelaImageVersionList = exports.EmulatorEnvVersion = void 0;
Object.defineProperty(exports, "getDefaultImage", {
enumerable: true,
get: function () {
return _shared.getDefaultImage;
}
});
exports.getImageDownloadUrl = getImageDownloadUrl;
exports.getSDKPartDownloadUrl = getSDKPartDownloadUrl;
Object.defineProperty(exports, "isMiwearImageType", {
enumerable: true,
get: function () {
return _shared.isMiwearImageType;
}
});
Object.defineProperty(exports, "isVelaImageType", {
enumerable: true,
get: function () {
return _shared.isVelaImageType;
}
});
exports.versionUrl = exports.systemImageBaseUrl = void 0;
var _os = _interopRequireDefault(require("os"));
var _path = _interopRequireDefault(require("path"));
var _Vvd = require("../typing/Vvd");
var _utils = require("../utils");
var _shared = require("../shared");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const defaultSDKHome = exports.defaultSDKHome = _path.default.resolve(_os.default.homedir(), _Vvd.VELAHOME.SDK);
const defaultVvdHome = exports.defaultVvdHome = _path.default.resolve(_os.default.homedir(), _Vvd.VELAHOME.VVD);
const defaultImageHome = exports.defaultImageHome = _path.default.resolve(defaultSDKHome, 'system-images', (0, _shared.getDefaultImage)());
const defaultEmulatorHome = exports.defaultEmulatorHome = _path.default.resolve(defaultSDKHome, 'emulator');
const defaultSkinHome = exports.defaultSkinHome = _path.default.resolve(defaultSDKHome, 'skins');
const defaultQuickappHome = exports.defaultQuickappHome = _path.default.resolve(defaultSDKHome, 'qa');
const defaultToolsHome = exports.defaultToolsHome = _path.default.resolve(defaultSDKHome, 'tools');
const defaultVncPort = exports.defaultVncPort = 5900;
const defaultAdbPort = exports.defaultAdbPort = 5555;
const defaultDebugPort = exports.defaultDebugPort = 10055;
const baseUrl = exports.baseUrl = 'https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide';
const versionUrl = exports.versionUrl = 'https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide/versions.json';
const emulatorBaseUrl = exports.emulatorBaseUrl = 'https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide/emulator';
const systemImageBaseUrl = exports.systemImageBaseUrl = 'https://vela-ide.cnbj3-fusion.mi-fds.com/vela-ide/system-images';
// 不确定vela镜像的发布策略,暂时需要手动更新此列表
// 0.0.2和0.0.3版本比较特殊,线上是一个nuttx文件。其他版本都是一个zip包,包含nuttx data.img和vela_source.img
/**
* vela-release-4.0 : vela 4.0 带 miwear
* vela-pre-4.0 : vela 4.0 不带 miwear
* vela-dev-0.0.4 : vela 4.0 dev 分支
*/
const VelaImageVersionList = exports.VelaImageVersionList = [{
label: 'vela-miwear-watch-5.0',
description: '适用于手表/手环的,带表盘的 vela 5.0 镜像,不可自定义模拟器尺寸',
value: _Vvd.VelaImageType.VELA_MIWEAR_WATCH_5,
time: '20250716',
hide: false,
icon: ''
}, {
label: 'vela-watch-5.0',
description: '适用于手表/手环的,不带表盘的 vela 5.0 镜像,可自定义模拟器尺寸',
value: _Vvd.VelaImageType.VELA_WATCH_5,
time: '20250716',
hide: false,
icon: ''
}, {
label: 'vela-miwear-watch-4.0',
description: '原 vela-release-4.0 版本,适用于手表/手环的,带表盘的 vela 4.0 镜像,不可自定义模拟器尺寸',
value: _Vvd.VelaImageType.REL,
time: '20250526',
hide: false,
icon: ''
}, {
label: 'vela-watch-4.0',
description: '原 vela-pre-4.0 版本,适用于手表/手环的,不带表盘的 vela 4.0 镜像,可自定义模拟器尺寸',
value: _Vvd.VelaImageType.PRE,
time: '20250225',
hide: false,
icon: ''
}, {
label: 'vela-miwear-minisound-5.0',
description: '适用于音响的 vela-miwear 5.0 镜像,不可自定义模拟器尺寸',
value: _Vvd.VelaImageType.VELA_MIWEAR_MINISOUND_5,
time: '20250318',
hide: true,
icon: ''
}];
const EmulatorEnvVersion = exports.EmulatorEnvVersion = {
name: '模拟器资源版本管理',
[_Vvd.SDKParts.EMULATOR]: '0.1.0',
[_Vvd.SDKParts.QA]: '0.0.1',
[_Vvd.SDKParts.SKINS]: '0.0.10',
[_Vvd.SDKParts.SYSTEM_IMAGES]: VelaImageVersionList[0].time,
[_Vvd.SDKParts.MODEM_SIMULATOR]: '0.0.3'
};
/** 获取镜像下载地址 */
function getImageDownloadUrl() {
return VelaImageVersionList.reduce((res, t) => {
res[t.value] = `${systemImageBaseUrl}/${t.value}/${t.time}/${t.value}.zip`;
return res;
}, {});
}
/**
* 获取各种 SKD 最新版本的下载地址;
* 镜像地址默认返回 REL 版本的地址,如果需要获取其他版本,请使用
* {@link getImageDownloadUrl}
*/
function getSDKPartDownloadUrl(type) {
switch (type) {
case _Vvd.SDKParts.EMULATOR:
const systemOs = _os.default.platform();
const hostArch = (0, _utils.getSystemArch)();
let hostOs = systemOs === 'win32' ? 'windows' : systemOs;
return `${emulatorBaseUrl}/v${EmulatorEnvVersion.emulator}/${hostOs}-${hostArch}.zip`;
case _Vvd.SDKParts.SYSTEM_IMAGES:
return getImageDownloadUrl()[(0, _shared.getDefaultImage)()];
case _Vvd.SDKParts.QA:
case _Vvd.SDKParts.MODEM_SIMULATOR:
case _Vvd.SDKParts.SKINS:
return `${baseUrl}/${type}/v${EmulatorEnvVersion[type]}/${type}.zip`;
}
}