@zeppos/zeus-cli 1.0.8 → 1.0.22
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/project.js +25 -1
- package/modules/build.js +117 -49
- package/modules/config.js +61 -17
- package/modules/create/index.js +61 -22
- package/modules/create/local-app.js +30 -6
- package/modules/help.js +10 -9
- package/modules/login.js +74 -24
- package/modules/run.js +40 -34
- package/modules/storage.js +2 -2
- 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/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 = "____".concat(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://".concat(LocalServerConfig.HOSTNAME, ":").concat(LocalServerConfig.PORT, "/"))
|
|
36
|
+
};
|
|
37
|
+
exports.loginStorageKey = {
|
|
38
|
+
accountToken: "".concat(accountPrefix, "token"),
|
|
39
|
+
account: "".concat(accountPrefix, "account"),
|
|
40
|
+
userid: "".concat(accountPrefix, "userid"),
|
|
41
|
+
cname: "".concat(accountPrefix, "cname")
|
|
42
|
+
};
|
package/modules/build.js
CHANGED
|
@@ -77,38 +77,84 @@ 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
81
|
var form_data_1 = __importDefault(require("form-data"));
|
|
83
82
|
var qrcode_terminal_1 = __importDefault(require("qrcode-terminal"));
|
|
84
83
|
var inquirer_1 = __importDefault(require("inquirer"));
|
|
85
84
|
var login_1 = require("./login");
|
|
86
85
|
var logger = __importStar(require("../utils/logger"));
|
|
87
|
-
var
|
|
86
|
+
var storage_1 = require("./storage");
|
|
87
|
+
var project_1 = require("../config/project");
|
|
88
|
+
var chalk_1 = __importDefault(require("chalk"));
|
|
88
89
|
var BuildMode;
|
|
89
90
|
(function (BuildMode) {
|
|
90
91
|
BuildMode["DEV"] = "development";
|
|
91
92
|
BuildMode["PREVIEW"] = "preview";
|
|
92
93
|
BuildMode["PROD"] = "production";
|
|
93
94
|
})(BuildMode = exports.BuildMode || (exports.BuildMode = {}));
|
|
94
|
-
|
|
95
|
+
var TransformType;
|
|
96
|
+
(function (TransformType) {
|
|
97
|
+
TransformType["Default"] = "";
|
|
98
|
+
TransformType["Js"] = "js";
|
|
99
|
+
TransformType["C"] = "c";
|
|
100
|
+
TransformType["Bin"] = "bin";
|
|
101
|
+
})(TransformType || (TransformType = {}));
|
|
102
|
+
function handleExecCommandInErrorDir(mode) {
|
|
103
|
+
var curCommand = 'dev';
|
|
104
|
+
if (mode === BuildMode.PROD) {
|
|
105
|
+
curCommand = 'build';
|
|
106
|
+
}
|
|
107
|
+
else if (mode === BuildMode.PREVIEW) {
|
|
108
|
+
curCommand = 'preview';
|
|
109
|
+
}
|
|
110
|
+
logger.warn("The command ".concat(chalk_1["default"].yellow("zeus ".concat(curCommand)), " needs to be executed in the root of the project"));
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
function chooseBuildPackages(mode) {
|
|
95
114
|
return __awaiter(this, void 0, void 0, function () {
|
|
96
|
-
var appJson, answers;
|
|
115
|
+
var appJson, targets, answers;
|
|
97
116
|
return __generator(this, function (_a) {
|
|
98
117
|
switch (_a.label) {
|
|
99
118
|
case 0:
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
119
|
+
if (!mode) {
|
|
120
|
+
mode = 'development';
|
|
121
|
+
}
|
|
122
|
+
appJson = fs_extra_1["default"].readJSONSync(path.resolve('./app.json'), { throws: false });
|
|
123
|
+
if (!appJson) {
|
|
124
|
+
handleExecCommandInErrorDir(mode);
|
|
125
|
+
}
|
|
126
|
+
targets = Object.keys(lodash_1["default"].get(appJson, 'targets', {}));
|
|
127
|
+
if (!!targets.length) return [3 /*break*/, 1];
|
|
128
|
+
logger.error('please set at least one package');
|
|
129
|
+
process.exit(1);
|
|
130
|
+
return [3 /*break*/, 4];
|
|
109
131
|
case 1:
|
|
132
|
+
if (!(targets.length === 1)) return [3 /*break*/, 2];
|
|
133
|
+
return [2 /*return*/, [targets[0]]];
|
|
134
|
+
case 2: return [4 /*yield*/, inquirer_1["default"].prompt([
|
|
135
|
+
{
|
|
136
|
+
name: 'target',
|
|
137
|
+
type: 'list',
|
|
138
|
+
when: function () { return mode !== BuildMode.PROD; },
|
|
139
|
+
message: 'Which target would you like to build?',
|
|
140
|
+
choices: targets
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: 'buildTargets',
|
|
144
|
+
type: 'checkbox',
|
|
145
|
+
when: function () { return mode === BuildMode.PROD; },
|
|
146
|
+
choices: targets.map(function (item) { return ({
|
|
147
|
+
name: item,
|
|
148
|
+
value: item,
|
|
149
|
+
checked: true
|
|
150
|
+
}); }),
|
|
151
|
+
message: 'Which targets would you like to build?'
|
|
152
|
+
}
|
|
153
|
+
])];
|
|
154
|
+
case 3:
|
|
110
155
|
answers = _a.sent();
|
|
111
|
-
return [2 /*return*/, [answers.target]];
|
|
156
|
+
return [2 /*return*/, mode !== BuildMode.PROD ? [answers.target] : answers.buildTargets];
|
|
157
|
+
case 4: return [2 /*return*/];
|
|
112
158
|
}
|
|
113
159
|
});
|
|
114
160
|
});
|
|
@@ -118,47 +164,59 @@ var build = function (mode, packages) {
|
|
|
118
164
|
if (mode === void 0) { mode = BuildMode.PROD; }
|
|
119
165
|
if (packages === void 0) { packages = []; }
|
|
120
166
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
121
|
-
var workspace,
|
|
167
|
+
var workspace, choosePackages, buildOptions, buildInfo_1, DistDir_1, error_1;
|
|
122
168
|
return __generator(this, function (_a) {
|
|
123
169
|
switch (_a.label) {
|
|
124
170
|
case 0:
|
|
125
171
|
workspace = path.resolve('./');
|
|
126
|
-
if (
|
|
127
|
-
|
|
128
|
-
return [3 /*break*/, 3];
|
|
172
|
+
if (!!packages.length) return [3 /*break*/, 2];
|
|
173
|
+
return [4 /*yield*/, chooseBuildPackages(mode)];
|
|
129
174
|
case 1:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
case 2:
|
|
133
|
-
choosedPackages = _a.sent();
|
|
134
|
-
if (!choosedPackages || !choosedPackages.length) {
|
|
175
|
+
choosePackages = _a.sent();
|
|
176
|
+
if (!choosePackages || !choosePackages.length) {
|
|
135
177
|
logger.error('please choose at least one package');
|
|
136
178
|
return [2 /*return*/];
|
|
137
179
|
}
|
|
138
|
-
packages.push.apply(packages,
|
|
139
|
-
_a.label =
|
|
140
|
-
case
|
|
180
|
+
packages.push.apply(packages, choosePackages);
|
|
181
|
+
_a.label = 2;
|
|
182
|
+
case 2:
|
|
141
183
|
buildOptions = {
|
|
142
184
|
path: workspace,
|
|
143
185
|
targets: packages,
|
|
144
186
|
buildMode: mode,
|
|
145
|
-
jsc:
|
|
187
|
+
jsc: TransformType.Default // 不开启 js => c
|
|
146
188
|
};
|
|
147
189
|
if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
|
|
148
|
-
buildOptions
|
|
190
|
+
Object.assign(buildOptions, {
|
|
191
|
+
png2vg: true
|
|
192
|
+
});
|
|
149
193
|
}
|
|
150
|
-
|
|
194
|
+
_a.label = 3;
|
|
195
|
+
case 3:
|
|
196
|
+
_a.trys.push([3, 8, , 9]);
|
|
197
|
+
if (!(mode === BuildMode.DEV)) return [3 /*break*/, 5];
|
|
198
|
+
return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
|
|
151
199
|
case 4:
|
|
152
|
-
|
|
153
|
-
|
|
200
|
+
_a.sent();
|
|
201
|
+
return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
|
|
202
|
+
case 5: return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
|
|
203
|
+
case 6:
|
|
204
|
+
buildInfo_1 = _a.sent();
|
|
205
|
+
if (buildInfo_1) {
|
|
154
206
|
DistDir_1 = path.join(workspace, 'dist');
|
|
155
207
|
rd.eachFileSync(DistDir_1, function (file) {
|
|
156
|
-
if (file !== path.join(DistDir_1,
|
|
208
|
+
if (file !== path.join(DistDir_1, buildInfo_1)) {
|
|
157
209
|
fs_extra_1["default"].removeSync(file);
|
|
158
210
|
}
|
|
159
211
|
});
|
|
160
212
|
}
|
|
161
|
-
return [2 /*return*/,
|
|
213
|
+
return [2 /*return*/, buildInfo_1];
|
|
214
|
+
case 7: return [3 /*break*/, 9];
|
|
215
|
+
case 8:
|
|
216
|
+
error_1 = _a.sent();
|
|
217
|
+
logger.error(error_1);
|
|
218
|
+
return [3 /*break*/, 9];
|
|
219
|
+
case 9: return [2 /*return*/];
|
|
162
220
|
}
|
|
163
221
|
});
|
|
164
222
|
});
|
|
@@ -168,26 +226,36 @@ var buildDev = function (packages) {
|
|
|
168
226
|
return (0, exports.build)(BuildMode.DEV, packages);
|
|
169
227
|
};
|
|
170
228
|
exports.buildDev = buildDev;
|
|
171
|
-
var buildProd = function (
|
|
172
|
-
return (0, exports.build)(BuildMode.PROD,
|
|
229
|
+
var buildProd = function () {
|
|
230
|
+
return (0, exports.build)(BuildMode.PROD, []);
|
|
173
231
|
};
|
|
174
232
|
exports.buildProd = buildProd;
|
|
233
|
+
var checkIsWatchFaceProject = function () {
|
|
234
|
+
var appJsonPath = path.resolve('./app.json');
|
|
235
|
+
var appJsonContent = fs_extra_1["default"].readJsonSync(appJsonPath);
|
|
236
|
+
var appType = lodash_1["default"].get(appJsonContent, 'app.appType');
|
|
237
|
+
return appType === project_1.AppType.WATCHFACE;
|
|
238
|
+
};
|
|
175
239
|
var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
176
|
-
var
|
|
177
|
-
return __generator(this, function (
|
|
178
|
-
switch (
|
|
179
|
-
case 0:
|
|
240
|
+
var storage, _a, apptoken, userid, cname, form, buildInfo, isWatchFaceProject;
|
|
241
|
+
return __generator(this, function (_b) {
|
|
242
|
+
switch (_b.label) {
|
|
243
|
+
case 0:
|
|
244
|
+
storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
|
|
245
|
+
return [4 /*yield*/, (0, login_1.login)(args)];
|
|
180
246
|
case 1:
|
|
181
|
-
|
|
247
|
+
_a = _b.sent(), apptoken = _a.apptoken, userid = _a.userid, cname = _a.cname;
|
|
182
248
|
form = new form_data_1["default"]();
|
|
183
249
|
logger.info('building preview...');
|
|
184
250
|
return [4 /*yield*/, (0, exports.build)(BuildMode.PREVIEW)];
|
|
185
251
|
case 2:
|
|
186
|
-
buildInfo =
|
|
252
|
+
buildInfo = _b.sent();
|
|
253
|
+
isWatchFaceProject = checkIsWatchFaceProject();
|
|
187
254
|
logger.info('getting preview package...');
|
|
188
|
-
form.append('
|
|
255
|
+
form.append('file', fs_1["default"].createReadStream("./dist/".concat(buildInfo)));
|
|
256
|
+
form.append('app_type', isWatchFaceProject ? '1' : '2');
|
|
189
257
|
form.getLength(function (err, length) { return __awaiter(void 0, void 0, void 0, function () {
|
|
190
|
-
var previewInfo, _a,
|
|
258
|
+
var host, previewInfo, _a, protocol, code;
|
|
191
259
|
return __generator(this, function (_b) {
|
|
192
260
|
switch (_b.label) {
|
|
193
261
|
case 0:
|
|
@@ -196,15 +264,15 @@ var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, fu
|
|
|
196
264
|
return [2 /*return*/];
|
|
197
265
|
}
|
|
198
266
|
logger.info('generating preview qrcode...');
|
|
199
|
-
|
|
200
|
-
|
|
267
|
+
host = cname.split(',').filter(function (h) { return h.indexOf('api-mifit') > -1; })[0];
|
|
268
|
+
return [4 /*yield*/, axios_1["default"].post("https://".concat(host, "/custom/tools/app-dial/upload?userid=").concat(userid), form, {
|
|
269
|
+
headers: __assign(__assign({}, form.getHeaders()), { 'content-length': "".concat(length), apptoken: apptoken })
|
|
201
270
|
})];
|
|
202
271
|
case 1:
|
|
203
272
|
previewInfo = _b.sent();
|
|
204
|
-
_a = lodash_1["default"].get(previewInfo, 'data
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
qrcode_terminal_1["default"].generate(prtcl + "://" + studioUrl.host + path, { small: true });
|
|
273
|
+
_a = lodash_1["default"].get(previewInfo, 'data', {}), protocol = _a.protocol, code = _a.code;
|
|
274
|
+
if (protocol && code) {
|
|
275
|
+
qrcode_terminal_1["default"].generate("".concat(protocol, "://").concat(host, "/custom/tools/app-dial/download/").concat(code), { small: true });
|
|
208
276
|
logger.success('please use Zepp APP to scan the qrcode below to preview your app.');
|
|
209
277
|
}
|
|
210
278
|
else {
|
package/modules/config.js
CHANGED
|
@@ -64,41 +64,84 @@ 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);
|
|
71
71
|
allowedMethods = ['get', 'set', 'delete', 'list'];
|
|
72
72
|
if (!lodash_1["default"].includes(allowedMethods, method)) {
|
|
73
|
-
logger.error("invalid method: "
|
|
73
|
+
logger.error("invalid method: ".concat(method));
|
|
74
74
|
logger.log(chalk_1["default"].yellow('try to use one of the following:'));
|
|
75
|
-
logger.log("- "
|
|
76
|
-
logger.log("- "
|
|
77
|
-
logger.log("- "
|
|
78
|
-
logger.log("- "
|
|
75
|
+
logger.log("- ".concat(cmd, " ").concat(space, " set <key>=<value> [<key>=<value> ...]"));
|
|
76
|
+
logger.log("- ".concat(cmd, " ").concat(space, " get <key> [<key> ...]"));
|
|
77
|
+
logger.log("- ".concat(cmd, " ").concat(space, " delete <key> [<key> ...]"));
|
|
78
|
+
logger.log("- ".concat(cmd, " ").concat(space, " list [--json]"));
|
|
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: ".concat(chalk_1["default"].yellow("zeus config ".concat(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: ".concat(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: ".concat(key, "=").concat(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("".concat(curKey, "=").concat(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: ".concat(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, '____')) {
|
|
@@ -110,10 +153,11 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
110
153
|
}
|
|
111
154
|
else {
|
|
112
155
|
Object.keys(config_1).forEach(function (key) {
|
|
113
|
-
logger.log(key
|
|
156
|
+
logger.log("".concat(key, "=").concat(config_1[key]));
|
|
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:
|
|
@@ -108,7 +108,7 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
108
108
|
if (projectName) {
|
|
109
109
|
workDir = (0, path_1.resolve)(cwdPath, projectName);
|
|
110
110
|
if (fs.existsSync(workDir)) {
|
|
111
|
-
logger.error("\""
|
|
111
|
+
logger.error("\"".concat(workDir, "/\" already exists."));
|
|
112
112
|
process.exit(1);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -125,9 +125,11 @@ 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
|
-
var dirPath = TEMPLATE_DIR
|
|
132
|
+
var dirPath = "".concat(TEMPLATE_DIR, "/").concat(dirName);
|
|
131
133
|
var dirStat = (0, fs_1.lstatSync)(dirPath);
|
|
132
134
|
if (dirStat.isDirectory()) {
|
|
133
135
|
var chooseItem = {
|
|
@@ -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)
|
|
224
|
-
(0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generagtorMate[
|
|
261
|
+
if (choosePkg.type === project_1.AppSourceType.YEOMAN) {
|
|
262
|
+
logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using yeoman template \"").concat(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)
|
|
228
|
-
(0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo:
|
|
266
|
+
logger.info("".concat(lodash_1["default"].upperFirst(cmd), " application using local template \"").concat(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)];
|
|
@@ -238,15 +277,15 @@ var create = function (args) { return __awaiter(void 0, void 0, void 0, function
|
|
|
238
277
|
else {
|
|
239
278
|
var shortFile = file.replace(cwdPath, '');
|
|
240
279
|
if (beforeFiles.includes(file)) {
|
|
241
|
-
logger.log(chalk_1["default"].yellow(" "
|
|
280
|
+
logger.log(chalk_1["default"].yellow(" ".concat(chalk_1["default"].bold('replace'), " ")), shortFile);
|
|
242
281
|
}
|
|
243
282
|
else {
|
|
244
|
-
logger.log(chalk_1["default"].green(" "
|
|
283
|
+
logger.log(chalk_1["default"].green(" ".concat(chalk_1["default"].bold('create'), " ")), shortFile);
|
|
245
284
|
}
|
|
246
285
|
}
|
|
247
286
|
});
|
|
248
287
|
logger.log('\n');
|
|
249
|
-
logger.success("project created successfully by \""
|
|
288
|
+
logger.success("project created successfully by \"".concat(choosePkg.name, "\" template.\n"));
|
|
250
289
|
return [4 /*yield*/, (0, sleep_1.sleep)(300)];
|
|
251
290
|
case 4:
|
|
252
291
|
_b.sent();
|