@zeppos/zeus-cli 1.0.7 → 1.0.18
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/bin/cli.js +3 -0
- package/config/device.js +10 -2
- package/config/project.js +25 -1
- package/modules/build.js +55 -39
- package/modules/config.js +55 -11
- package/modules/create/index.js +57 -18
- package/modules/create/local-app.js +28 -4
- package/modules/help.js +1 -0
- package/modules/login.js +69 -19
- package/modules/run.js +43 -29
- package/modules/simulator.js +4 -3
- package/package.json +3 -2
- package/public/template/empty/app.js +1 -1
- package/public/template/empty/app.json +1 -8
- package/public/template/empty/watchface/index.js +13 -0
- package/public/template/hello-world/app.js +1 -1
- package/public/template/hello-world/page/i18n/en-US.po +3 -0
- package/public/template/timer/app.js +10 -0
- package/public/template/timer/app.json +50 -0
- package/public/template/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/center.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/h.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/left.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/m.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/right.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/point/s.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/preview.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/second/second.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
- package/public/template/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
- package/public/template/timer/shared/buffer.js +11 -0
- package/public/template/timer/shared/device-polyfill.js +3 -0
- package/public/template/timer/shared/global.js +17 -0
- package/public/template/timer/shared/js-module.js +27 -0
- package/public/template/timer/shared/logger.js +21 -0
- package/public/template/timer/shared/setTimeout.js +59 -0
- package/public/template/timer/watchface/gtr-3-pro/index.js +1 -0
- package/public/template/timer/watchface/round/index.js +438 -0
- package/public/template/hello-world/i18n/en-US.po +0 -2
package/bin/cli.js
CHANGED
|
@@ -19,9 +19,12 @@ yargs_1["default"].usage('Usage: $0 <command> [args?]')
|
|
|
19
19
|
.alias('v', 'version')
|
|
20
20
|
.command('init', 'init a new project in current directory', proxy, index_1.create)
|
|
21
21
|
.command('create', 'add a new project to current directory', proxy, index_1.create)
|
|
22
|
+
// @ts-ignore
|
|
22
23
|
.command('login', 'login to your account', proxy, index_1.login)
|
|
24
|
+
.command('logout', 'Sign out of your account', proxy, index_1.logout)
|
|
23
25
|
.command('dev', 'run this project in development mode', proxy, index_1.run)
|
|
24
26
|
.command('preview', 'preview this project in your device', proxy, index_1.buildPreview)
|
|
27
|
+
// @ts-ignore
|
|
25
28
|
.command('build', 'build this project for production', proxy, index_1.buildProd)
|
|
26
29
|
.command('config', 'set or get the config value', proxy, index_1.config)
|
|
27
30
|
.fail(index_1.help)
|
package/config/device.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.deviceTargets = exports.DeviceScreenType = exports.DeviceSource = exports.DevicePlatformName = exports.DeviceTarget = void 0;
|
|
4
|
+
exports.deviceInternalCodename = exports.deviceTargets = exports.DeviceScreenType = exports.DeviceSource = exports.DevicePlatformName = exports.DeviceTarget = void 0;
|
|
5
5
|
var DeviceTarget;
|
|
6
6
|
(function (DeviceTarget) {
|
|
7
7
|
DeviceTarget["MADRID"] = "madrid";
|
|
@@ -87,3 +87,11 @@ exports.deviceTargets = (_a = {},
|
|
|
87
87
|
}
|
|
88
88
|
},
|
|
89
89
|
_a);
|
|
90
|
+
exports.deviceInternalCodename = (_b = {},
|
|
91
|
+
_b[DeviceSource.MADRID] = DeviceTarget.MADRID,
|
|
92
|
+
_b[DeviceSource.MADRIDW] = DeviceTarget.MADRID,
|
|
93
|
+
_b[DeviceSource.VERONA] = DeviceTarget.VERONA,
|
|
94
|
+
_b[DeviceSource.VERONAW] = DeviceTarget.VERONA,
|
|
95
|
+
_b[DeviceSource.ZURICH] = DeviceTarget.ZURICH,
|
|
96
|
+
_b[DeviceSource.ZURICHW] = DeviceTarget.ZURICH,
|
|
97
|
+
_b);
|
package/config/project.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
exports.__esModule = true;
|
|
3
|
-
exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
|
|
6
|
+
exports.loginStorageKey = exports.loginConfig = exports.LocalServerConfig = exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
|
|
7
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
4
8
|
var AppType;
|
|
5
9
|
(function (AppType) {
|
|
6
10
|
AppType["APP"] = "app";
|
|
@@ -16,3 +20,23 @@ var TemplateCopyType;
|
|
|
16
20
|
TemplateCopyType["CLONE"] = "clone";
|
|
17
21
|
TemplateCopyType["EDIT"] = "edit";
|
|
18
22
|
})(TemplateCopyType = exports.TemplateCopyType || (exports.TemplateCopyType = {}));
|
|
23
|
+
var LocalServerConfig;
|
|
24
|
+
(function (LocalServerConfig) {
|
|
25
|
+
LocalServerConfig["HOSTNAME"] = "localhost";
|
|
26
|
+
LocalServerConfig[LocalServerConfig["PORT"] = 8086] = "PORT";
|
|
27
|
+
})(LocalServerConfig = exports.LocalServerConfig || (exports.LocalServerConfig = {}));
|
|
28
|
+
var loginURL = 'https://user.huami.com/universalLogin/index.html#/login';
|
|
29
|
+
var loginUrl = new URL(loginURL);
|
|
30
|
+
var accountPrefix = "____" + lodash_1["default"].replace(loginUrl.host, /\./g, '_') + "__";
|
|
31
|
+
exports.loginConfig = {
|
|
32
|
+
LOGIN_URL: loginURL,
|
|
33
|
+
PROJECT_NAME: 'zeppos_zeus_cli',
|
|
34
|
+
PLATFORM_APP: 'com.huami.watch.hmwatchmanager',
|
|
35
|
+
PROJECT_REDIRECT_URI: encodeURIComponent("http://" + LocalServerConfig.HOSTNAME + ":" + LocalServerConfig.PORT + "/")
|
|
36
|
+
};
|
|
37
|
+
exports.loginStorageKey = {
|
|
38
|
+
accountToken: accountPrefix + "token",
|
|
39
|
+
account: accountPrefix + "account",
|
|
40
|
+
userid: accountPrefix + "userid",
|
|
41
|
+
cname: accountPrefix + "cname"
|
|
42
|
+
};
|
package/modules/build.js
CHANGED
|
@@ -72,21 +72,19 @@ exports.__esModule = true;
|
|
|
72
72
|
exports.buildPreview = exports.buildProd = exports.buildDev = exports.build = exports.chooseBuildPackages = exports.BuildMode = void 0;
|
|
73
73
|
// @ts-ignore
|
|
74
74
|
var node_js_1 = require("@zeppos/zpm/lib/node.js");
|
|
75
|
-
var os_1 = __importDefault(require("os"));
|
|
76
75
|
var fs_1 = __importDefault(require("fs"));
|
|
76
|
+
var rd = __importStar(require("rd"));
|
|
77
77
|
var path = __importStar(require("path"));
|
|
78
78
|
var lodash_1 = __importDefault(require("lodash"));
|
|
79
79
|
var axios_1 = __importDefault(require("axios"));
|
|
80
|
-
var url_1 = require("url");
|
|
81
80
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
82
|
-
var path_1 = require("path");
|
|
83
81
|
var form_data_1 = __importDefault(require("form-data"));
|
|
84
82
|
var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
85
83
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
86
84
|
var login_1 = require("./login");
|
|
87
|
-
var md5_1 = require("../utils/md5");
|
|
88
85
|
var logger = __importStar(require("../utils/logger"));
|
|
89
|
-
var
|
|
86
|
+
var storage_1 = require("./storage");
|
|
87
|
+
var project_1 = require("../config/project");
|
|
90
88
|
var BuildMode;
|
|
91
89
|
(function (BuildMode) {
|
|
92
90
|
BuildMode["DEV"] = "development";
|
|
@@ -99,7 +97,7 @@ function chooseBuildPackages() {
|
|
|
99
97
|
return __generator(this, function (_a) {
|
|
100
98
|
switch (_a.label) {
|
|
101
99
|
case 0:
|
|
102
|
-
appJson = fs_extra_1["default"].readJSONSync(
|
|
100
|
+
appJson = fs_extra_1["default"].readJSONSync(path.resolve('./app.json'));
|
|
103
101
|
return [4 /*yield*/, inquirer_1["default"].prompt([
|
|
104
102
|
{
|
|
105
103
|
name: 'target',
|
|
@@ -120,19 +118,11 @@ var build = function (mode, packages) {
|
|
|
120
118
|
if (mode === void 0) { mode = BuildMode.PROD; }
|
|
121
119
|
if (packages === void 0) { packages = []; }
|
|
122
120
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
123
|
-
var
|
|
121
|
+
var workspace, choosedPackages, buildOptions, buildInfo_1, DistDir_1, error_1;
|
|
124
122
|
return __generator(this, function (_a) {
|
|
125
123
|
switch (_a.label) {
|
|
126
124
|
case 0:
|
|
127
|
-
|
|
128
|
-
try {
|
|
129
|
-
buildTempDir = path.join(os_1["default"].tmpdir(), "zepp-" + (0, md5_1.md5)(path.resolve('./')));
|
|
130
|
-
fs_extra_1["default"].copySync('./', buildTempDir);
|
|
131
|
-
}
|
|
132
|
-
catch (err) {
|
|
133
|
-
logger.error('failed to copy project to temp dir');
|
|
134
|
-
logger.log(err);
|
|
135
|
-
}
|
|
125
|
+
workspace = path.resolve('./');
|
|
136
126
|
if (!(mode === BuildMode.PROD)) return [3 /*break*/, 1];
|
|
137
127
|
packages.length = 0;
|
|
138
128
|
return [3 /*break*/, 3];
|
|
@@ -149,7 +139,7 @@ var build = function (mode, packages) {
|
|
|
149
139
|
_a.label = 3;
|
|
150
140
|
case 3:
|
|
151
141
|
buildOptions = {
|
|
152
|
-
path:
|
|
142
|
+
path: workspace,
|
|
153
143
|
targets: packages,
|
|
154
144
|
buildMode: mode,
|
|
155
145
|
jsc: '' // 不开启 js => c
|
|
@@ -157,16 +147,32 @@ var build = function (mode, packages) {
|
|
|
157
147
|
if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
|
|
158
148
|
buildOptions.png2vg = true;
|
|
159
149
|
}
|
|
160
|
-
|
|
150
|
+
_a.label = 4;
|
|
161
151
|
case 4:
|
|
162
|
-
|
|
163
|
-
if (
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
152
|
+
_a.trys.push([4, 9, , 10]);
|
|
153
|
+
if (!(mode === BuildMode.DEV)) return [3 /*break*/, 6];
|
|
154
|
+
return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
|
|
155
|
+
case 5:
|
|
156
|
+
_a.sent();
|
|
157
|
+
return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
|
|
158
|
+
case 6: return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
|
|
159
|
+
case 7:
|
|
160
|
+
buildInfo_1 = _a.sent();
|
|
161
|
+
if (buildInfo_1) {
|
|
162
|
+
DistDir_1 = path.join(workspace, 'dist');
|
|
163
|
+
rd.eachFileSync(DistDir_1, function (file) {
|
|
164
|
+
if (file !== path.join(DistDir_1, buildInfo_1)) {
|
|
165
|
+
fs_extra_1["default"].removeSync(file);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
168
|
}
|
|
169
|
-
return [2 /*return*/,
|
|
169
|
+
return [2 /*return*/, buildInfo_1];
|
|
170
|
+
case 8: return [3 /*break*/, 10];
|
|
171
|
+
case 9:
|
|
172
|
+
error_1 = _a.sent();
|
|
173
|
+
logger.error(error_1);
|
|
174
|
+
return [3 /*break*/, 10];
|
|
175
|
+
case 10: return [2 /*return*/];
|
|
170
176
|
}
|
|
171
177
|
});
|
|
172
178
|
});
|
|
@@ -180,22 +186,32 @@ var buildProd = function (packages) {
|
|
|
180
186
|
return (0, exports.build)(BuildMode.PROD, packages);
|
|
181
187
|
};
|
|
182
188
|
exports.buildProd = buildProd;
|
|
189
|
+
var checkIsWatchFaceProject = function () {
|
|
190
|
+
var appJsonPath = path.resolve('./app.json');
|
|
191
|
+
var appJsonContent = fs_extra_1["default"].readJsonSync(appJsonPath);
|
|
192
|
+
var appType = lodash_1["default"].get(appJsonContent, 'app.appType');
|
|
193
|
+
return appType === project_1.AppType.WATCHFACE;
|
|
194
|
+
};
|
|
183
195
|
var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
184
|
-
var
|
|
185
|
-
return __generator(this, function (
|
|
186
|
-
switch (
|
|
187
|
-
case 0:
|
|
196
|
+
var storage, isWatchFaceProject, _a, apptoken, userid, cname, form, buildInfo;
|
|
197
|
+
return __generator(this, function (_b) {
|
|
198
|
+
switch (_b.label) {
|
|
199
|
+
case 0:
|
|
200
|
+
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
201
|
+
isWatchFaceProject = checkIsWatchFaceProject();
|
|
202
|
+
return [4 /*yield*/, (0, login_1.login)(args)];
|
|
188
203
|
case 1:
|
|
189
|
-
|
|
204
|
+
_a = _b.sent(), apptoken = _a.apptoken, userid = _a.userid, cname = _a.cname;
|
|
190
205
|
form = new form_data_1["default"]();
|
|
191
206
|
logger.info('building preview...');
|
|
192
207
|
return [4 /*yield*/, (0, exports.build)(BuildMode.PREVIEW)];
|
|
193
208
|
case 2:
|
|
194
|
-
buildInfo =
|
|
209
|
+
buildInfo = _b.sent();
|
|
195
210
|
logger.info('getting preview package...');
|
|
196
|
-
form.append('
|
|
211
|
+
form.append('file', fs_1["default"].createReadStream("./dist/" + buildInfo));
|
|
212
|
+
form.append('app_type', isWatchFaceProject ? '1' : '2');
|
|
197
213
|
form.getLength(function (err, length) { return __awaiter(void 0, void 0, void 0, function () {
|
|
198
|
-
var previewInfo, _a,
|
|
214
|
+
var host, previewInfo, _a, protocol, code;
|
|
199
215
|
return __generator(this, function (_b) {
|
|
200
216
|
switch (_b.label) {
|
|
201
217
|
case 0:
|
|
@@ -204,15 +220,15 @@ var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
204
220
|
return [2 /*return*/];
|
|
205
221
|
}
|
|
206
222
|
logger.info('generating preview qrcode...');
|
|
207
|
-
|
|
208
|
-
|
|
223
|
+
host = cname.split(',').filter(function (h) { return h.indexOf('api-mifit') > -1; })[0];
|
|
224
|
+
return [4 /*yield*/, axios_1["default"].post("https://" + host + "/custom/tools/app-dial/upload?userid=" + userid, form, {
|
|
225
|
+
headers: __assign(__assign({}, form.getHeaders()), { 'content-length': "" + length, apptoken: apptoken })
|
|
209
226
|
})];
|
|
210
227
|
case 1:
|
|
211
228
|
previewInfo = _b.sent();
|
|
212
|
-
_a = lodash_1["default"].get(previewInfo, 'data
|
|
213
|
-
if (
|
|
214
|
-
|
|
215
|
-
qrcode_terminal_1["default"].generate(prtcl + "://" + studioUrl.host + path, { small: true });
|
|
229
|
+
_a = lodash_1["default"].get(previewInfo, 'data', {}), protocol = _a.protocol, code = _a.code;
|
|
230
|
+
if (protocol && code) {
|
|
231
|
+
qrcode_terminal_1["default"].generate(protocol + "://" + host + "/custom/tools/app-dial/download/" + code, { small: true });
|
|
216
232
|
logger.success('please use Zepp APP to scan the qrcode below to preview your app.');
|
|
217
233
|
}
|
|
218
234
|
else {
|
package/modules/config.js
CHANGED
|
@@ -64,7 +64,7 @@ var chalk_1 = __importDefault(require("chalk"));
|
|
|
64
64
|
var storage_1 = require("./storage");
|
|
65
65
|
var logger = __importStar(require("../utils/logger"));
|
|
66
66
|
var config = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
67
|
-
var cmd, _a, space, _b, method, values, allowedMethods, storage, config_1;
|
|
67
|
+
var cmd, _a, space, _b, method, values, allowedMethods, storage, commonHandleNotKeyTips, config_1;
|
|
68
68
|
return __generator(this, function (_c) {
|
|
69
69
|
cmd = lodash_1["default"].get(args, '$0');
|
|
70
70
|
_a = lodash_1["default"].get(args, '_', []), space = _a[0], _b = _a[1], method = _b === void 0 ? '' : _b, values = _a.slice(2);
|
|
@@ -79,26 +79,69 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
79
79
|
process.exit(1);
|
|
80
80
|
}
|
|
81
81
|
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
82
|
+
commonHandleNotKeyTips = function (method) {
|
|
83
|
+
logger.error("Please enter the data in the format: " + chalk_1["default"].yellow("zeus config " + method + " <key>"));
|
|
84
|
+
};
|
|
82
85
|
switch (method) {
|
|
83
|
-
case 'set':
|
|
86
|
+
case 'set': {
|
|
87
|
+
if (!values.length) {
|
|
88
|
+
logger.error("Please enter the data in the format: " + chalk_1["default"].yellow('zeus config set <key>=<value>'));
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
84
91
|
values.forEach(function (info) {
|
|
85
|
-
var _a = info.split('='),
|
|
86
|
-
|
|
87
|
-
|
|
92
|
+
var _a = info.split('='), _b = _a[0], key = _b === void 0 ? '' : _b, _c = _a[1], value = _c === void 0 ? '' : _c;
|
|
93
|
+
key = key.trim();
|
|
94
|
+
value = value.trim();
|
|
95
|
+
if (!info.includes('=')) {
|
|
96
|
+
logger.error('Please enter the data in the format <key>=<value>');
|
|
97
|
+
}
|
|
98
|
+
else if (value === '') {
|
|
99
|
+
logger.error('please input <value>');
|
|
100
|
+
}
|
|
101
|
+
else if (key === '') {
|
|
102
|
+
logger.error('please input <key>');
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
storage.set(key, value);
|
|
106
|
+
logger.success("config: " + key + "=" + value);
|
|
107
|
+
}
|
|
88
108
|
});
|
|
89
109
|
break;
|
|
90
|
-
|
|
110
|
+
}
|
|
111
|
+
case 'get': {
|
|
112
|
+
if (!values.length) {
|
|
113
|
+
commonHandleNotKeyTips('get');
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
91
116
|
values.forEach(function (key) {
|
|
92
|
-
|
|
117
|
+
var curKey = key.trim();
|
|
118
|
+
if (!storage.has(key) || !key) {
|
|
119
|
+
logger.error('The <key> does not exist');
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
logger.log(curKey + "=" + storage.get(curKey));
|
|
123
|
+
}
|
|
93
124
|
});
|
|
94
125
|
break;
|
|
95
|
-
|
|
126
|
+
}
|
|
127
|
+
case 'delete': {
|
|
128
|
+
if (!values.length) {
|
|
129
|
+
commonHandleNotKeyTips('delete');
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
96
132
|
values.forEach(function (key) {
|
|
97
|
-
|
|
98
|
-
|
|
133
|
+
var curKey = key.trim();
|
|
134
|
+
if (!storage.has(key) || !key) {
|
|
135
|
+
logger.error('The <key> does not exist');
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
storage["delete"](curKey);
|
|
139
|
+
logger.success("config: " + curKey + " deleted");
|
|
140
|
+
}
|
|
99
141
|
});
|
|
100
142
|
break;
|
|
101
|
-
|
|
143
|
+
}
|
|
144
|
+
case 'list': {
|
|
102
145
|
config_1 = storage.getAll();
|
|
103
146
|
Object.keys(config_1).forEach(function (key) {
|
|
104
147
|
if (lodash_1["default"].startsWith(key, '____')) {
|
|
@@ -114,6 +157,7 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
114
157
|
});
|
|
115
158
|
}
|
|
116
159
|
break;
|
|
160
|
+
}
|
|
117
161
|
default:
|
|
118
162
|
break;
|
|
119
163
|
}
|
package/modules/create/index.js
CHANGED
|
@@ -97,7 +97,7 @@ var sleep_1 = require("../../utils/sleep");
|
|
|
97
97
|
var yeoman_environment_1 = __importDefault(require("yeoman-environment"));
|
|
98
98
|
var TEMPLATE_DIR = (0, path_1.resolve)(__dirname, '../../public/template');
|
|
99
99
|
var create = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
100
|
-
var _a, cmd, projectName, cwdPath, workDir, beforeFiles, localTemplates, localChoices, env, generagtorMate, generagtorMateKeys, answer,
|
|
100
|
+
var _a, cmd, projectName, cwdPath, workDir, beforeFiles, localTemplates, localChoices, watchfaceTemplateChoices, appTemplateChoices, env, generagtorMate, generagtorMateKeys, answer, choosePkg;
|
|
101
101
|
return __generator(this, function (_b) {
|
|
102
102
|
switch (_b.label) {
|
|
103
103
|
case 0:
|
|
@@ -125,6 +125,8 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
125
125
|
}
|
|
126
126
|
localTemplates = (0, fs_1.readdirSync)(TEMPLATE_DIR);
|
|
127
127
|
localChoices = [];
|
|
128
|
+
watchfaceTemplateChoices = [];
|
|
129
|
+
appTemplateChoices = [];
|
|
128
130
|
if (!lodash_1["default"].isEmpty(localTemplates)) {
|
|
129
131
|
localTemplates.forEach(function (dirName) {
|
|
130
132
|
var dirPath = TEMPLATE_DIR + "/" + dirName;
|
|
@@ -139,8 +141,20 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
139
141
|
localChoices.unshift(Object.assign(chooseItem, {
|
|
140
142
|
copyType: project_1.TemplateCopyType.EDIT
|
|
141
143
|
}));
|
|
144
|
+
watchfaceTemplateChoices.unshift(Object.assign(chooseItem, {
|
|
145
|
+
copyType: project_1.TemplateCopyType.EDIT
|
|
146
|
+
}));
|
|
147
|
+
appTemplateChoices.unshift(Object.assign(chooseItem, {
|
|
148
|
+
copyType: project_1.TemplateCopyType.EDIT
|
|
149
|
+
}));
|
|
142
150
|
}
|
|
143
151
|
else {
|
|
152
|
+
if (dirName === 'hello-world') {
|
|
153
|
+
appTemplateChoices.push(chooseItem);
|
|
154
|
+
}
|
|
155
|
+
if (dirName === 'timer') {
|
|
156
|
+
watchfaceTemplateChoices.push(chooseItem);
|
|
157
|
+
}
|
|
144
158
|
localChoices.push(chooseItem);
|
|
145
159
|
}
|
|
146
160
|
}
|
|
@@ -161,34 +175,58 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
161
175
|
name: name,
|
|
162
176
|
type: project_1.AppSourceType.YEOMAN
|
|
163
177
|
});
|
|
178
|
+
appTemplateChoices.push({
|
|
179
|
+
name: name,
|
|
180
|
+
type: project_1.AppSourceType.YEOMAN
|
|
181
|
+
});
|
|
182
|
+
watchfaceTemplateChoices.push({
|
|
183
|
+
name: name,
|
|
184
|
+
type: project_1.AppSourceType.YEOMAN
|
|
185
|
+
});
|
|
164
186
|
}
|
|
165
187
|
});
|
|
166
188
|
}
|
|
167
189
|
localChoices.map(function (val, index) {
|
|
168
190
|
val.value = index;
|
|
169
191
|
});
|
|
192
|
+
appTemplateChoices.map(function (val, index) {
|
|
193
|
+
val.value = index;
|
|
194
|
+
});
|
|
195
|
+
watchfaceTemplateChoices.map(function (val, index) {
|
|
196
|
+
val.value = index;
|
|
197
|
+
});
|
|
170
198
|
return [4 /*yield*/, inquirer_1["default"].prompt([
|
|
199
|
+
{
|
|
200
|
+
name: 'appType',
|
|
201
|
+
type: 'list',
|
|
202
|
+
message: 'What type of application do you want to create?',
|
|
203
|
+
choices: Object.keys(project_1.AppType)
|
|
204
|
+
},
|
|
171
205
|
{
|
|
172
206
|
name: 'template',
|
|
173
207
|
type: 'list',
|
|
208
|
+
when: function (args) { return args.appType.toLowerCase() === project_1.AppType.APP; },
|
|
174
209
|
message: 'Which template do you want to use?',
|
|
175
210
|
choices: __spreadArray([
|
|
176
211
|
new inquirer_1["default"].Separator(),
|
|
177
212
|
new inquirer_1["default"].Separator('Choose a template')
|
|
178
|
-
],
|
|
213
|
+
], appTemplateChoices, true)
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
name: 'template',
|
|
217
|
+
type: 'list',
|
|
218
|
+
when: function (args) { return args.appType.toLowerCase() === project_1.AppType.WATCHFACE; },
|
|
219
|
+
message: 'Which template do you want to use?',
|
|
220
|
+
choices: __spreadArray([
|
|
221
|
+
new inquirer_1["default"].Separator(),
|
|
222
|
+
new inquirer_1["default"].Separator('Choose a template')
|
|
223
|
+
], watchfaceTemplateChoices, true)
|
|
179
224
|
},
|
|
180
|
-
// {
|
|
181
|
-
// name: 'appType',
|
|
182
|
-
// type: 'list',
|
|
183
|
-
// when: (args) => args.template === 0,
|
|
184
|
-
// message: 'What type of application should be created?',
|
|
185
|
-
// choices: Object.keys(AppType)
|
|
186
|
-
// },
|
|
187
225
|
{
|
|
188
226
|
name: 'withAppSide',
|
|
189
227
|
type: 'confirm',
|
|
190
228
|
// when: (args) => !!args.appType,
|
|
191
|
-
when: function (args) { return args.template === 0; },
|
|
229
|
+
when: function (args) { return args.template === 0 && args.appType.toLowerCase() === project_1.AppType.APP; },
|
|
192
230
|
message: 'Should this application contain a app-side component?'
|
|
193
231
|
},
|
|
194
232
|
{
|
|
@@ -204,7 +242,8 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
204
242
|
when: function (args) { return args.template === 0; },
|
|
205
243
|
choices: Object.keys(device_1.deviceTargets).map(function (platform) { return ({
|
|
206
244
|
name: device_1.deviceTargets[platform].deviceName,
|
|
207
|
-
value: platform
|
|
245
|
+
value: platform,
|
|
246
|
+
checked: platform === Object.keys(device_1.deviceTargets)[0]
|
|
208
247
|
}); }),
|
|
209
248
|
"default": Object.keys(device_1.deviceTargets)[0],
|
|
210
249
|
message: 'Which platforms of this application should be built?'
|
|
@@ -214,18 +253,18 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
214
253
|
answer = _b.sent();
|
|
215
254
|
answer.appType = answer.appType || project_1.AppType.APP;
|
|
216
255
|
answer.workDir = workDir;
|
|
217
|
-
|
|
256
|
+
choosePkg = answer.appType.toLowerCase() === project_1.AppType.APP ? appTemplateChoices[answer.template] : watchfaceTemplateChoices[answer.template];
|
|
218
257
|
logger.info('fetching template...');
|
|
219
258
|
return [4 /*yield*/, (0, sleep_1.sleep)(100)];
|
|
220
259
|
case 2:
|
|
221
260
|
_b.sent();
|
|
222
|
-
if (
|
|
223
|
-
logger.info(lodash_1["default"].upperFirst(cmd) + " application using yeoman template \"" +
|
|
224
|
-
(0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generagtorMate[
|
|
261
|
+
if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
|
|
262
|
+
logger.info(lodash_1["default"].upperFirst(cmd) + " application using yeoman template \"" + choosePkg.name + "\".");
|
|
263
|
+
(0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generagtorMate[choosePkg.name] }));
|
|
225
264
|
}
|
|
226
265
|
else {
|
|
227
|
-
logger.info(lodash_1["default"].upperFirst(cmd) + " application using local template \"" +
|
|
228
|
-
(0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo:
|
|
266
|
+
logger.info(lodash_1["default"].upperFirst(cmd) + " application using local template \"" + choosePkg.name + "\".");
|
|
267
|
+
(0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo: choosePkg }));
|
|
229
268
|
}
|
|
230
269
|
logger.log('\n');
|
|
231
270
|
return [4 /*yield*/, (0, sleep_1.sleep)(50)];
|
|
@@ -246,7 +285,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
246
285
|
}
|
|
247
286
|
});
|
|
248
287
|
logger.log('\n');
|
|
249
|
-
logger.success("project created successfully by \"" +
|
|
288
|
+
logger.success("project created successfully by \"" + choosePkg.name + "\" template.\n");
|
|
250
289
|
return [4 /*yield*/, (0, sleep_1.sleep)(300)];
|
|
251
290
|
case 4:
|
|
252
291
|
_b.sent();
|
|
@@ -57,18 +57,42 @@ var path_1 = require("path");
|
|
|
57
57
|
var fs_extra_1 = __importDefault(require("fs-extra"));
|
|
58
58
|
var project_1 = require("../../config/project");
|
|
59
59
|
var device_1 = require("../../config/device");
|
|
60
|
+
// 生成模板项目
|
|
60
61
|
var createLocalApp = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
61
|
-
var workDir, templateInfo, withAppSide, withSettings, buildTargets, appJsonPath, appJson, defaultTarget, targets, defaultAssetsPath_1;
|
|
62
|
+
var workDir, templateInfo, withAppSide, withSettings, buildTargets, appType, appJsonPath, appJson, appID, defaultTarget, targets, defaultWatchFaceConfig, defaultAssetsPath_1;
|
|
62
63
|
return __generator(this, function (_a) {
|
|
63
|
-
workDir = args.workDir, templateInfo = args.templateInfo, withAppSide = args.withAppSide, withSettings = args.withSettings, buildTargets = args.buildTargets;
|
|
64
|
+
workDir = args.workDir, templateInfo = args.templateInfo, withAppSide = args.withAppSide, withSettings = args.withSettings, buildTargets = args.buildTargets, appType = args.appType;
|
|
64
65
|
fs_extra_1["default"].copySync(templateInfo.path, workDir);
|
|
66
|
+
appJsonPath = (0, path_1.resolve)(workDir, './app.json');
|
|
67
|
+
appJson = fs_extra_1["default"].readJsonSync(appJsonPath);
|
|
68
|
+
appID = Math.floor(Math.random() * 10001) + 20000;
|
|
69
|
+
lodash_1["default"].set(appJson, 'app.appId', appID);
|
|
65
70
|
if (templateInfo.copyType !== project_1.TemplateCopyType.EDIT) {
|
|
71
|
+
fs_extra_1["default"].writeJson(appJsonPath, appJson, {
|
|
72
|
+
spaces: 2,
|
|
73
|
+
EOL: os_1["default"].EOL
|
|
74
|
+
});
|
|
66
75
|
return [2 /*return*/];
|
|
67
76
|
}
|
|
68
|
-
appJsonPath = (0, path_1.resolve)(workDir, './app.json');
|
|
69
|
-
appJson = fs_extra_1["default"].readJsonSync(appJsonPath);
|
|
70
77
|
defaultTarget = lodash_1["default"].get(appJson, 'targets.default');
|
|
71
78
|
targets = {};
|
|
79
|
+
if (appType.toLowerCase() === project_1.AppType.WATCHFACE) {
|
|
80
|
+
defaultWatchFaceConfig = {
|
|
81
|
+
"path": "watchface/index",
|
|
82
|
+
"main": 1,
|
|
83
|
+
"editable": 0,
|
|
84
|
+
"lockscreen": 0,
|
|
85
|
+
"photoscreen": 0
|
|
86
|
+
};
|
|
87
|
+
lodash_1["default"].set(appJson, 'app.appType', project_1.AppType.WATCHFACE);
|
|
88
|
+
lodash_1["default"].set(appJson, 'app.description', 'empty watchface');
|
|
89
|
+
lodash_1["default"].unset(defaultTarget, 'module.page');
|
|
90
|
+
lodash_1["default"].set(defaultTarget, 'module.watchface', defaultWatchFaceConfig);
|
|
91
|
+
fs_extra_1["default"].remove((0, path_1.resolve)(workDir, './pages'));
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
fs_extra_1["default"].remove((0, path_1.resolve)(workDir, './watchface'));
|
|
95
|
+
}
|
|
72
96
|
if (!withAppSide) {
|
|
73
97
|
lodash_1["default"].unset(defaultTarget, 'module.app-side');
|
|
74
98
|
fs_extra_1["default"].remove((0, path_1.resolve)(workDir, './app-side'));
|
package/modules/help.js
CHANGED
|
@@ -73,6 +73,7 @@ var help = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
|
73
73
|
logger.log(cmd + " init init a new project in current directory");
|
|
74
74
|
logger.log(cmd + " create <foo> add the <foo> project to current directory");
|
|
75
75
|
logger.log(cmd + " login login to your account");
|
|
76
|
+
logger.log(cmd + " logout Sign out of your account");
|
|
76
77
|
logger.log(cmd + " dev run this project in development mode");
|
|
77
78
|
logger.log(cmd + " preview preview this project in your device");
|
|
78
79
|
logger.log(cmd + " build build this project for production");
|