aiot-toolkit 2.0.2-dev.2 → 2.0.2-dev.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -9
- package/lib/bin.js +6 -6
- package/lib/starter/IStarter.d.ts +2 -2
- package/lib/starter/IStarter.js +0 -6
- package/lib/starter/UxStarter.js +5 -2
- package/lib/starter/XtsStarter.d.ts +3 -3
- package/lib/starter/XtsStarter.js +4 -1
- package/lib/utils/VelaAvdUtils.d.ts +6 -0
- package/lib/utils/VelaAvdUtils.js +18 -2
- package/package.json +7 -11
package/README.md
CHANGED
|
@@ -5,7 +5,6 @@ aiot-toolkit 2.0 是将 **源码项目** 转换为 **目标代码项目** 并生
|
|
|
5
5
|
aiot-toolkit2.0目前支持的打包格式如下:
|
|
6
6
|
|
|
7
7
|
- ux:vela 平台下的应用,目前大量使用于小米手表、音箱等智能穿戴及物联网设备
|
|
8
|
-
- xts:新一代vela应用
|
|
9
8
|
|
|
10
9
|
## 安装使用
|
|
11
10
|
|
|
@@ -32,8 +31,9 @@ aiot-toolkit2.0目前支持的打包格式如下:
|
|
|
32
31
|
|
|
33
32
|
| 命令 | 说明 |
|
|
34
33
|
| ------------------------ | ------------------------ |
|
|
35
|
-
| create
|
|
36
|
-
| create
|
|
34
|
+
| npm create aiot | 创建并手动选择项目 |
|
|
35
|
+
| npm create aiot xts | 创建xts项目 |
|
|
36
|
+
| npm create aiot ux | 创建ux项目 |
|
|
37
37
|
| aiot build | 构建项目 |
|
|
38
38
|
| aiot release | 构建项目-release模式 |
|
|
39
39
|
| aiot start | 构建项目并运行到模拟器 |
|
|
@@ -42,9 +42,3 @@ aiot-toolkit2.0目前支持的打包格式如下:
|
|
|
42
42
|
| aiot installDbgAndMkp | 在真机上安装快应用调试器 |
|
|
43
43
|
| aiot createVelaAvd | 创建 vela 模拟器 |
|
|
44
44
|
| aiot deleteVelaAvd | 删除 vela 模拟器 |
|
|
45
|
-
|
|
46
|
-
## 参考
|
|
47
|
-
|
|
48
|
-
> [贡献代码](./doc/贡献代码.md) >
|
|
49
|
-
|
|
50
|
-
> [ux解析流程](./doc/ux解析流程.md)
|
package/lib/bin.js
CHANGED
|
@@ -64,7 +64,7 @@ function getProjectType() {
|
|
|
64
64
|
else if (isXts) {
|
|
65
65
|
return "xts" /* ProjectType.XTS */;
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
return "ux" /* ProjectType.UX */;
|
|
68
68
|
}
|
|
69
69
|
function findStarter(command, description) {
|
|
70
70
|
const projectType = getProjectType();
|
|
@@ -75,7 +75,7 @@ function main() {
|
|
|
75
75
|
const config = {
|
|
76
76
|
name: 'aiot-toolkit',
|
|
77
77
|
description: 'contains build, dev, release, etc. commands for aiot toolkit',
|
|
78
|
-
version: '
|
|
78
|
+
version: require('../package.json').version,
|
|
79
79
|
commandList: [
|
|
80
80
|
build('build', 'build project'),
|
|
81
81
|
build('release', 'release the project'),
|
|
@@ -158,15 +158,15 @@ function main() {
|
|
|
158
158
|
})
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
name: '
|
|
162
|
-
description: 'create a vela
|
|
161
|
+
name: 'createVVD',
|
|
162
|
+
description: 'create a vela virtual device',
|
|
163
163
|
action: () => __awaiter(this, void 0, void 0, function* () {
|
|
164
164
|
VelaAvdUtils_1.default.createVelaAvdByInquire();
|
|
165
165
|
})
|
|
166
166
|
},
|
|
167
167
|
{
|
|
168
|
-
name: '
|
|
169
|
-
description: 'delete vela
|
|
168
|
+
name: 'deleteVVD',
|
|
169
|
+
description: 'delete vela virtual device(s)',
|
|
170
170
|
paramList: [
|
|
171
171
|
{
|
|
172
172
|
name: 'avdNames',
|
|
@@ -2,7 +2,7 @@ import { ICommand, IParam } from '@aiot-toolkit/commander';
|
|
|
2
2
|
/**
|
|
3
3
|
* IStarter
|
|
4
4
|
*/
|
|
5
|
-
export default class IStarter<O = any> {
|
|
5
|
+
export default abstract class IStarter<O = any> {
|
|
6
6
|
protected name: string;
|
|
7
7
|
protected description: string;
|
|
8
8
|
/**
|
|
@@ -19,5 +19,5 @@ export default class IStarter<O = any> {
|
|
|
19
19
|
* @param projectPath 项目路径
|
|
20
20
|
* @param options 命令参数
|
|
21
21
|
*/
|
|
22
|
-
start(projectPath: string, options: O): void | Promise<void>;
|
|
22
|
+
abstract start(projectPath: string, options: O): void | Promise<void>;
|
|
23
23
|
}
|
package/lib/starter/IStarter.js
CHANGED
package/lib/starter/UxStarter.js
CHANGED
|
@@ -97,11 +97,14 @@ class UxStarter extends IStarter_1.default {
|
|
|
97
97
|
// build
|
|
98
98
|
yield this.builder.build(projectPath, options);
|
|
99
99
|
// start
|
|
100
|
-
const
|
|
100
|
+
const params = {
|
|
101
101
|
sdkHome: path_1.default.resolve(os_1.default.homedir(), '.export'),
|
|
102
102
|
avdHome: path_1.default.resolve(os_1.default.homedir(), '.android/avd'),
|
|
103
103
|
projectPath
|
|
104
|
-
}
|
|
104
|
+
};
|
|
105
|
+
const goldfishInstance = (0, emulator_1.findInstance)(avdName, params);
|
|
106
|
+
if (!goldfishInstance)
|
|
107
|
+
return;
|
|
105
108
|
let vncPort;
|
|
106
109
|
if (options.openVNC) {
|
|
107
110
|
vncPort = yield portfinder_1.default.getPortPromise({ port: constants_1.defaultVncPort, stopPort: constants_1.defaultVncPort + 100 });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import ParamType from
|
|
2
|
-
import XtsBuilder from
|
|
3
|
-
import IStarter from
|
|
1
|
+
import ParamType from '@aiot-toolkit/commander/lib/interface/IParam';
|
|
2
|
+
import XtsBuilder from '../builder/XtsBuilder';
|
|
3
|
+
import IStarter from './IStarter';
|
|
4
4
|
declare class XtsStarter extends IStarter {
|
|
5
5
|
builder: XtsBuilder;
|
|
6
6
|
params: ParamType[];
|
|
@@ -11,6 +11,9 @@ class XtsStarter extends IStarter_1.default {
|
|
|
11
11
|
this.builder = new XtsBuilder_1.default();
|
|
12
12
|
this.params = [];
|
|
13
13
|
}
|
|
14
|
-
start(projectPath, options) {
|
|
14
|
+
start(projectPath, options) {
|
|
15
|
+
console.log(projectPath, options);
|
|
16
|
+
throw new Error('Method not implemented.');
|
|
17
|
+
}
|
|
15
18
|
}
|
|
16
19
|
exports.default = XtsStarter;
|
|
@@ -31,6 +31,12 @@ declare class VelaAvdUtils {
|
|
|
31
31
|
static getv9fsToolUrl(version?: string): string;
|
|
32
32
|
/** 获取资源文件下载地址 */
|
|
33
33
|
static getDownloadUrl(dir: string, version?: string, filename?: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* 判断vela镜像是release版还是dev版
|
|
36
|
+
* @param velaImage 镜像名称或者镜像路径
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
static isReleaseVelaImage(velaImage: string): boolean;
|
|
34
40
|
/**
|
|
35
41
|
* 命令行访问方式创建模拟器
|
|
36
42
|
*/
|
|
@@ -110,6 +110,9 @@ class VelaAvdUtils {
|
|
|
110
110
|
}
|
|
111
111
|
/** 根据host获取vela镜像下载地址 */
|
|
112
112
|
static getSystemImageUrl(version = 'vela-release-4.0') {
|
|
113
|
+
if (this.isReleaseVelaImage(version)) {
|
|
114
|
+
return `${VelaAvdUtils.systemImageBaseUrl}/${version}/image.zip`;
|
|
115
|
+
}
|
|
113
116
|
return `${VelaAvdUtils.systemImageBaseUrl}/${version}/nuttx`;
|
|
114
117
|
}
|
|
115
118
|
/** 根据host获取ya-vm-file-server下载地址 */
|
|
@@ -135,6 +138,14 @@ class VelaAvdUtils {
|
|
|
135
138
|
static getDownloadUrl(dir, version = '0.0.1', filename = dir) {
|
|
136
139
|
return `${VelaAvdUtils.baseUrl}/${dir}/v${version}/${filename}.zip`;
|
|
137
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* 判断vela镜像是release版还是dev版
|
|
143
|
+
* @param velaImage 镜像名称或者镜像路径
|
|
144
|
+
* @returns
|
|
145
|
+
*/
|
|
146
|
+
static isReleaseVelaImage(velaImage) {
|
|
147
|
+
return velaImage.includes('release');
|
|
148
|
+
}
|
|
138
149
|
/**
|
|
139
150
|
* 命令行访问方式创建模拟器
|
|
140
151
|
*/
|
|
@@ -198,7 +209,7 @@ class VelaAvdUtils {
|
|
|
198
209
|
const velaImage = (yield (0, prompts_1.select)({
|
|
199
210
|
message: 'vela image.',
|
|
200
211
|
choices: [
|
|
201
|
-
// { value: 'vela-release-4.0', name: 'vela
|
|
212
|
+
// { value: 'vela-release-4.0-pre', name: 'vela抢先版(4.0)' },
|
|
202
213
|
{ value: 'vela-dev-0.0.2', name: 'vela开发版(dev, 0.0.2)' }
|
|
203
214
|
]
|
|
204
215
|
}));
|
|
@@ -215,7 +226,12 @@ class VelaAvdUtils {
|
|
|
215
226
|
const imageDir = path_1.default.resolve(VelaAvdUtils.sdkHome, 'system-images', velaImage);
|
|
216
227
|
const imageExists = fs_extra_1.default.existsSync(path_1.default.resolve(imageDir, 'nuttx'));
|
|
217
228
|
if (!imageExists) {
|
|
218
|
-
|
|
229
|
+
if (this.isReleaseVelaImage(velaImage)) {
|
|
230
|
+
yield VelaAvdUtils.downloadAndUnzip(velaImageDownloadUrl, imageDir);
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
yield VelaAvdUtils.downloadFromCdn(velaImageDownloadUrl, imageDir, 'nuttx');
|
|
234
|
+
}
|
|
219
235
|
ColorConsole_1.default.success(`Download vela image succeed.`);
|
|
220
236
|
}
|
|
221
237
|
// 下载快应用qa文件
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiot-toolkit",
|
|
3
|
-
"version": "2.0.2-dev.
|
|
3
|
+
"version": "2.0.2-dev.4",
|
|
4
4
|
"description": "Tools for creating, developing, and packaging aiot applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aiot"
|
|
@@ -17,30 +17,26 @@
|
|
|
17
17
|
"files": [
|
|
18
18
|
"lib"
|
|
19
19
|
],
|
|
20
|
-
"repository": {
|
|
21
|
-
"type": "git",
|
|
22
|
-
"url": "ssh://xujunjie1@git.mioffice.cn:29418/vela/aiot-toolkit"
|
|
23
|
-
},
|
|
24
20
|
"scripts": {
|
|
25
21
|
"test": "node ./__tests__/aiot-toolkit.test.js"
|
|
26
22
|
},
|
|
27
23
|
"dependencies": {
|
|
28
|
-
"@aiot-toolkit/commander": "2.0.2-dev.
|
|
29
|
-
"@aiot-toolkit/emulator": "2.0.2-dev.
|
|
30
|
-
"@aiot-toolkit/shared-utils": "2.0.2-dev.
|
|
24
|
+
"@aiot-toolkit/commander": "2.0.2-dev.4",
|
|
25
|
+
"@aiot-toolkit/emulator": "2.0.2-dev.4",
|
|
26
|
+
"@aiot-toolkit/shared-utils": "2.0.2-dev.4",
|
|
31
27
|
"@miwt/adb": "^0.7.1",
|
|
32
28
|
"adb-commander": "^0.1.9",
|
|
33
29
|
"adm-zip": "^0.5.10",
|
|
34
30
|
"axios": "^1.5.0",
|
|
35
31
|
"cli-progress": "^3.12.0",
|
|
36
|
-
"create-aiot": "2.0.2-dev.
|
|
32
|
+
"create-aiot": "2.0.2-dev.4",
|
|
37
33
|
"fast-glob": "^3.3.2",
|
|
38
|
-
"file-lane": "2.0.2-dev.
|
|
34
|
+
"file-lane": "2.0.2-dev.4",
|
|
39
35
|
"ws": "^8.15.1"
|
|
40
36
|
},
|
|
41
37
|
"devDependencies": {
|
|
42
38
|
"@types/adm-zip": "^0.5.4",
|
|
43
39
|
"@types/ws": "^8.5.10"
|
|
44
40
|
},
|
|
45
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "534fdc7c6f018623c05499bf9add8db813ef8660"
|
|
46
42
|
}
|