@zeppos/zeus-cli 1.0.10 → 1.0.24

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.
Files changed (88) hide show
  1. package/bin/cli.js +3 -0
  2. package/config/project.js +16 -14
  3. package/index.js +1 -0
  4. package/modules/build.js +116 -52
  5. package/modules/config.js +66 -17
  6. package/modules/create/index.js +70 -28
  7. package/modules/create/local-app.js +34 -6
  8. package/modules/help.js +11 -9
  9. package/modules/login.js +62 -90
  10. package/modules/run.js +47 -41
  11. package/modules/simulator.js +4 -0
  12. package/modules/status.js +98 -0
  13. package/modules/storage.js +2 -2
  14. package/package.json +4 -2
  15. package/public/template/empty/app.js +3 -25
  16. package/public/template/empty/app.json +1 -8
  17. package/public/template/empty/watchface/index.js +13 -0
  18. package/public/template/hello-world/app.js +3 -25
  19. package/public/template/hello-world/page/gtr3/home/index.page.js +6 -4
  20. package/public/template/hello-world/page/gtr3/home/index.style.js +11 -28
  21. package/public/template/hello-world/page/gtr3-pro/home/index.page.js +6 -4
  22. package/public/template/hello-world/page/gtr3-pro/home/index.style.js +11 -28
  23. package/public/template/hello-world/page/gts3/home/index.page.js +7 -4
  24. package/public/template/hello-world/page/gts3/home/index.style.js +11 -28
  25. package/public/template/jsconfig.json +14 -0
  26. package/public/template/package.json +14 -0
  27. package/public/template/timer/app.js +7 -0
  28. package/public/template/timer/app.json +50 -0
  29. package/public/template/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
  30. package/public/template/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
  31. package/public/template/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
  32. package/public/template/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
  33. package/public/template/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
  34. package/public/template/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
  35. package/public/template/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
  36. package/public/template/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
  37. package/public/template/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
  38. package/public/template/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
  39. package/public/template/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
  40. package/public/template/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
  41. package/public/template/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
  42. package/public/template/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
  43. package/public/template/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
  44. package/public/template/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
  45. package/public/template/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
  46. package/public/template/timer/assets/gtr-3-pro/images/point/center.png +0 -0
  47. package/public/template/timer/assets/gtr-3-pro/images/point/h.png +0 -0
  48. package/public/template/timer/assets/gtr-3-pro/images/point/left.png +0 -0
  49. package/public/template/timer/assets/gtr-3-pro/images/point/m.png +0 -0
  50. package/public/template/timer/assets/gtr-3-pro/images/point/right.png +0 -0
  51. package/public/template/timer/assets/gtr-3-pro/images/point/s.png +0 -0
  52. package/public/template/timer/assets/gtr-3-pro/images/preview.png +0 -0
  53. package/public/template/timer/assets/gtr-3-pro/images/second/second.png +0 -0
  54. package/public/template/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
  55. package/public/template/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
  56. package/public/template/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
  57. package/public/template/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
  58. package/public/template/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
  59. package/public/template/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
  60. package/public/template/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
  61. package/public/template/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
  62. package/public/template/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
  63. package/public/template/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
  64. package/public/template/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
  65. package/public/template/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
  66. package/public/template/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
  67. package/public/template/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
  68. package/public/template/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
  69. package/public/template/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
  70. package/public/template/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
  71. package/public/template/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
  72. package/public/template/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
  73. package/public/template/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
  74. package/public/template/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
  75. package/public/template/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
  76. package/public/template/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
  77. package/public/template/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
  78. package/public/template/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
  79. package/public/template/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
  80. package/public/template/timer/shared/buffer.js +11 -0
  81. package/public/template/timer/shared/device-polyfill.js +3 -0
  82. package/public/template/timer/shared/global.js +17 -0
  83. package/public/template/timer/shared/js-module.js +27 -0
  84. package/public/template/timer/shared/logger.js +21 -0
  85. package/public/template/timer/shared/setTimeout.js +59 -0
  86. package/public/template/timer/watchface/gtr-3-pro/index.js +1 -0
  87. package/public/template/timer/watchface/round/index.js +438 -0
  88. package/utils/login.js +126 -0
package/bin/cli.js CHANGED
@@ -21,9 +21,12 @@ yargs_1["default"].usage('Usage: $0 <command> [args?]')
21
21
  .command('create', 'add a new project to current directory', proxy, index_1.create)
22
22
  // @ts-ignore
23
23
  .command('login', 'login to your account', proxy, index_1.login)
24
+ .command('logout', 'Sign out of your account', proxy, index_1.logout)
24
25
  .command('dev', 'run this project in development mode', proxy, index_1.run)
25
26
  .command('preview', 'preview this project in your device', proxy, index_1.buildPreview)
27
+ // @ts-ignore
26
28
  .command('build', 'build this project for production', proxy, index_1.buildProd)
27
29
  .command('config', 'set or get the config value', proxy, index_1.config)
30
+ .command('status', 'view information such as login and emulator connection status', proxy, index_1.status)
28
31
  .fail(index_1.help)
29
32
  .argv;
package/config/project.js CHANGED
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  exports.__esModule = true;
6
- exports.loginStorageKey = exports.loginConfig = exports.LocalServerConfig = exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
6
+ exports.loginStorageKey = exports.loginConfig = exports.ACCOUNT_ENV = exports.ACCOUNT_ENV_KEY = exports.TemplateCopyType = exports.AppSourceType = exports.AppType = void 0;
7
7
  var lodash_1 = __importDefault(require("lodash"));
8
+ var storage_1 = require("../modules/storage");
8
9
  var AppType;
9
10
  (function (AppType) {
10
11
  AppType["APP"] = "app";
@@ -20,21 +21,22 @@ var TemplateCopyType;
20
21
  TemplateCopyType["CLONE"] = "clone";
21
22
  TemplateCopyType["EDIT"] = "edit";
22
23
  })(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, '_') + "__";
24
+ exports.ACCOUNT_ENV_KEY = 'account_env';
25
+ var storage = new storage_1.Storage({ cmd: '' });
26
+ exports.ACCOUNT_ENV = storage.get(exports.ACCOUNT_ENV_KEY) ? storage.get(exports.ACCOUNT_ENV_KEY) : storage.set(exports.ACCOUNT_ENV_KEY, 'production');
27
+ var loginTestURL = 'https://user-testing.huami.com/universalLogin/index.html#/login';
28
+ var loginProURL = 'https://user.huami.com/universalLogin/index.html#/login';
29
+ var curLoginURL = exports.ACCOUNT_ENV === 'production' ? loginProURL : loginTestURL;
30
+ var loginUrl = new URL(curLoginURL);
31
+ var accountPrefix = "____".concat(lodash_1["default"].replace(loginUrl.host, /\./g, '_'), "__");
31
32
  exports.loginConfig = {
32
- LOGIN_URL: loginURL,
33
+ LOGIN_URL: curLoginURL,
33
34
  PROJECT_NAME: 'zeppos_zeus_cli',
34
- PLATFORM_APP: 'com.huami.watch.hmwatchmanager',
35
- PROJECT_REDIRECT_URI: encodeURIComponent("http://" + LocalServerConfig.HOSTNAME + ":" + LocalServerConfig.PORT + "/")
35
+ PLATFORM_APP: 'com.huami.watch.hmwatchmanager'
36
36
  };
37
37
  exports.loginStorageKey = {
38
- accountToken: accountPrefix + "token",
39
- account: accountPrefix + "account"
38
+ accountToken: "".concat(accountPrefix, "token"),
39
+ account: "".concat(accountPrefix, "account"),
40
+ userid: "".concat(accountPrefix, "userid"),
41
+ cname: "".concat(accountPrefix, "cname")
40
42
  };
package/index.js CHANGED
@@ -16,3 +16,4 @@ __exportStar(require("./modules/build"), exports);
16
16
  __exportStar(require("./modules/create"), exports);
17
17
  __exportStar(require("./modules/login"), exports);
18
18
  __exportStar(require("./modules/config"), exports);
19
+ __exportStar(require("./modules/status"), exports);
package/modules/build.js CHANGED
@@ -77,39 +77,83 @@ 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 storage_1 = require("./storage");
88
- var STUDIO_URL = 'https://studio.huami.com';
86
+ var project_1 = require("../config/project");
87
+ var chalk_1 = __importDefault(require("chalk"));
89
88
  var BuildMode;
90
89
  (function (BuildMode) {
91
90
  BuildMode["DEV"] = "development";
92
91
  BuildMode["PREVIEW"] = "preview";
93
92
  BuildMode["PROD"] = "production";
94
93
  })(BuildMode = exports.BuildMode || (exports.BuildMode = {}));
95
- function chooseBuildPackages() {
94
+ var TransformType;
95
+ (function (TransformType) {
96
+ TransformType["Default"] = "";
97
+ TransformType["Js"] = "js";
98
+ TransformType["C"] = "c";
99
+ TransformType["Bin"] = "bin";
100
+ })(TransformType || (TransformType = {}));
101
+ function handleExecCommandInErrorDir(mode) {
102
+ var curCommand = 'dev';
103
+ if (mode === BuildMode.PROD) {
104
+ curCommand = 'build';
105
+ }
106
+ else if (mode === BuildMode.PREVIEW) {
107
+ curCommand = 'preview';
108
+ }
109
+ logger.warn("The command ".concat(chalk_1["default"].yellow("zeus ".concat(curCommand)), " needs to be executed in the root of the project"));
110
+ process.exit(1);
111
+ }
112
+ function chooseBuildPackages(mode) {
96
113
  return __awaiter(this, void 0, void 0, function () {
97
- var appJson, answers;
114
+ var appJson, targets, answers;
98
115
  return __generator(this, function (_a) {
99
116
  switch (_a.label) {
100
117
  case 0:
101
- appJson = fs_extra_1["default"].readJSONSync(path.resolve('./app.json'));
102
- return [4 /*yield*/, inquirer_1["default"].prompt([
103
- {
104
- name: 'target',
105
- type: 'list',
106
- message: 'Which target would you like to build?',
107
- choices: Object.keys(lodash_1["default"].get(appJson, 'targets', {}))
108
- }
109
- ])];
118
+ if (!mode) {
119
+ mode = 'development';
120
+ }
121
+ appJson = fs_extra_1["default"].readJSONSync(path.resolve('./app.json'), { throws: false });
122
+ if (!appJson) {
123
+ handleExecCommandInErrorDir(mode);
124
+ }
125
+ targets = Object.keys(lodash_1["default"].get(appJson, 'targets', {}));
126
+ if (!!targets.length) return [3 /*break*/, 1];
127
+ logger.error('please set at least one package');
128
+ process.exit(1);
129
+ return [3 /*break*/, 4];
110
130
  case 1:
131
+ if (!(targets.length === 1)) return [3 /*break*/, 2];
132
+ return [2 /*return*/, [targets[0]]];
133
+ case 2: return [4 /*yield*/, inquirer_1["default"].prompt([
134
+ {
135
+ name: 'target',
136
+ type: 'list',
137
+ when: function () { return mode !== BuildMode.PROD; },
138
+ message: 'Which target would you like to build?',
139
+ choices: targets
140
+ },
141
+ {
142
+ name: 'buildTargets',
143
+ type: 'checkbox',
144
+ when: function () { return mode === BuildMode.PROD; },
145
+ choices: targets.map(function (item) { return ({
146
+ name: item,
147
+ value: item,
148
+ checked: true
149
+ }); }),
150
+ message: 'Which targets would you like to build?'
151
+ }
152
+ ])];
153
+ case 3:
111
154
  answers = _a.sent();
112
- return [2 /*return*/, [answers.target]];
155
+ return [2 /*return*/, mode !== BuildMode.PROD ? [answers.target] : answers.buildTargets];
156
+ case 4: return [2 /*return*/];
113
157
  }
114
158
  });
115
159
  });
@@ -119,47 +163,61 @@ var build = function (mode, packages) {
119
163
  if (mode === void 0) { mode = BuildMode.PROD; }
120
164
  if (packages === void 0) { packages = []; }
121
165
  return __awaiter(void 0, void 0, void 0, function () {
122
- var workspace, choosedPackages, buildOptions, buildInfo, DistDir_1;
166
+ var workspace, choosePackages, buildOptions, buildInfo_1, DistDir_1, error_1;
123
167
  return __generator(this, function (_a) {
124
168
  switch (_a.label) {
125
169
  case 0:
126
170
  workspace = path.resolve('./');
127
- if (!(mode === BuildMode.PROD)) return [3 /*break*/, 1];
128
- packages.length = 0;
129
- return [3 /*break*/, 3];
171
+ if (!!packages.length) return [3 /*break*/, 2];
172
+ return [4 /*yield*/, chooseBuildPackages(mode)];
130
173
  case 1:
131
- if (!!packages.length) return [3 /*break*/, 3];
132
- return [4 /*yield*/, chooseBuildPackages()];
133
- case 2:
134
- choosedPackages = _a.sent();
135
- if (!choosedPackages || !choosedPackages.length) {
174
+ choosePackages = _a.sent();
175
+ if (!choosePackages || !choosePackages.length) {
136
176
  logger.error('please choose at least one package');
137
177
  return [2 /*return*/];
138
178
  }
139
- packages.push.apply(packages, choosedPackages);
140
- _a.label = 3;
141
- case 3:
179
+ packages.push.apply(packages, choosePackages);
180
+ _a.label = 2;
181
+ case 2:
142
182
  buildOptions = {
143
183
  path: workspace,
144
184
  targets: packages,
145
185
  buildMode: mode,
146
- jsc: '' // 不开启 js => c
186
+ jsc: TransformType.Default // 不开启 js => c
147
187
  };
148
188
  if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
149
- buildOptions.png2vg = true;
189
+ Object.assign(buildOptions, {
190
+ png2vg: true,
191
+ jsc: TransformType.C,
192
+ prune: true // js转成bin之后删除js脚本(开启转 bin 之后,需要在 win 上 preview 验证一下转 C 是否正常)
193
+ });
150
194
  }
151
- return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
195
+ _a.label = 3;
196
+ case 3:
197
+ _a.trys.push([3, 8, , 9]);
198
+ if (!(mode === BuildMode.DEV)) return [3 /*break*/, 5];
199
+ return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
152
200
  case 4:
153
- buildInfo = _a.sent();
154
- if (buildInfo) {
201
+ _a.sent();
202
+ return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
203
+ case 5: return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
204
+ case 6:
205
+ buildInfo_1 = _a.sent();
206
+ if (buildInfo_1) {
155
207
  DistDir_1 = path.join(workspace, 'dist');
156
208
  rd.eachFileSync(DistDir_1, function (file) {
157
- if (file !== path.join(DistDir_1, buildInfo)) {
209
+ if (file !== path.join(DistDir_1, buildInfo_1)) {
158
210
  fs_extra_1["default"].removeSync(file);
159
211
  }
160
212
  });
161
213
  }
162
- return [2 /*return*/, buildInfo];
214
+ return [2 /*return*/, buildInfo_1];
215
+ case 7: return [3 /*break*/, 9];
216
+ case 8:
217
+ error_1 = _a.sent();
218
+ logger.error(error_1);
219
+ return [3 /*break*/, 9];
220
+ case 9: return [2 /*return*/];
163
221
  }
164
222
  });
165
223
  });
@@ -169,28 +227,34 @@ var buildDev = function (packages) {
169
227
  return (0, exports.build)(BuildMode.DEV, packages);
170
228
  };
171
229
  exports.buildDev = buildDev;
172
- var buildProd = function (packages) {
173
- return (0, exports.build)(BuildMode.PROD, packages);
230
+ var buildProd = function () {
231
+ return (0, exports.build)(BuildMode.PROD, []);
174
232
  };
175
233
  exports.buildProd = buildProd;
234
+ var checkIsWatchFaceProject = function () {
235
+ var appJsonPath = path.resolve('./app.json');
236
+ var appJsonContent = fs_extra_1["default"].readJsonSync(appJsonPath);
237
+ var appType = lodash_1["default"].get(appJsonContent, 'app.appType');
238
+ return appType === project_1.AppType.WATCHFACE;
239
+ };
176
240
  var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
177
- var storage, userToken, form, buildInfo;
178
- return __generator(this, function (_a) {
179
- switch (_a.label) {
180
- case 0:
181
- storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
182
- return [4 /*yield*/, (0, login_1.login)(args)];
241
+ var _a, apptoken, userid, cname, form, buildInfo, isWatchFaceProject;
242
+ return __generator(this, function (_b) {
243
+ switch (_b.label) {
244
+ case 0: return [4 /*yield*/, (0, login_1.login)(args)];
183
245
  case 1:
184
- userToken = _a.sent();
246
+ _a = _b.sent(), apptoken = _a.apptoken, userid = _a.userid, cname = _a.cname;
185
247
  form = new form_data_1["default"]();
186
248
  logger.info('building preview...');
187
249
  return [4 /*yield*/, (0, exports.build)(BuildMode.PREVIEW)];
188
250
  case 2:
189
- buildInfo = _a.sent();
251
+ buildInfo = _b.sent();
252
+ isWatchFaceProject = checkIsWatchFaceProject();
190
253
  logger.info('getting preview package...');
191
- form.append('uploadFile', fs_1["default"].createReadStream("./dist/" + buildInfo));
254
+ form.append('file', fs_1["default"].createReadStream("./dist/".concat(buildInfo)));
255
+ form.append('app_type', isWatchFaceProject ? '1' : '2');
192
256
  form.getLength(function (err, length) { return __awaiter(void 0, void 0, void 0, function () {
193
- var previewInfo, _a, prtcl, path, studioUrl;
257
+ var host, previewInfo, _a, protocol, code;
194
258
  return __generator(this, function (_b) {
195
259
  switch (_b.label) {
196
260
  case 0:
@@ -199,15 +263,15 @@ var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, fu
199
263
  return [2 /*return*/];
200
264
  }
201
265
  logger.info('generating preview qrcode...');
202
- return [4 /*yield*/, axios_1["default"].post(STUDIO_URL + "/upload/package/preview", form, {
203
- headers: __assign(__assign({}, form.getHeaders()), { 'content-length': "" + length, apptoken: userToken })
266
+ host = cname.split(',').filter(function (h) { return h.indexOf('api-mifit') > -1; })[0];
267
+ return [4 /*yield*/, axios_1["default"].post("https://".concat(host, "/custom/tools/app-dial/upload?userid=").concat(userid), form, {
268
+ headers: __assign(__assign({}, form.getHeaders()), { 'content-length': "".concat(length), apptoken: apptoken })
204
269
  })];
205
270
  case 1:
206
271
  previewInfo = _b.sent();
207
- _a = lodash_1["default"].get(previewInfo, 'data.data', {}), prtcl = _a.prtcl, path = _a.path;
208
- if (prtcl && path) {
209
- studioUrl = new url_1.URL(STUDIO_URL);
210
- qrcode_terminal_1["default"].generate(prtcl + "://" + studioUrl.host + path, { small: true });
272
+ _a = lodash_1["default"].get(previewInfo, 'data', {}), protocol = _a.protocol, code = _a.code;
273
+ if (protocol && code) {
274
+ qrcode_terminal_1["default"].generate("".concat(protocol, "://").concat(host, "/custom/tools/app-dial/download/").concat(code), { small: true });
211
275
  logger.success('please use Zepp APP to scan the qrcode below to preview your app.');
212
276
  }
213
277
  else {
package/modules/config.js CHANGED
@@ -63,42 +63,90 @@ var lodash_1 = __importDefault(require("lodash"));
63
63
  var chalk_1 = __importDefault(require("chalk"));
64
64
  var storage_1 = require("./storage");
65
65
  var logger = __importStar(require("../utils/logger"));
66
+ var project_1 = require("../config/project");
66
67
  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;
68
+ var cmd, _a, space, _b, method, values, allowedMethods, storage, commonHandleNotKeyTips, config_1;
68
69
  return __generator(this, function (_c) {
69
70
  cmd = lodash_1["default"].get(args, '$0');
70
71
  _a = lodash_1["default"].get(args, '_', []), space = _a[0], _b = _a[1], method = _b === void 0 ? '' : _b, values = _a.slice(2);
71
72
  allowedMethods = ['get', 'set', 'delete', 'list'];
72
73
  if (!lodash_1["default"].includes(allowedMethods, method)) {
73
- logger.error("invalid method: " + method);
74
+ logger.error("invalid method: ".concat(method));
74
75
  logger.log(chalk_1["default"].yellow('try to use one of the following:'));
75
- logger.log("- " + cmd + " " + space + " set <key>=<value> [<key>=<value> ...]");
76
- logger.log("- " + cmd + " " + space + " get <key> [<key> ...]");
77
- logger.log("- " + cmd + " " + space + " delete <key> [<key> ...]");
78
- logger.log("- " + cmd + " " + space + " list [--json]");
76
+ logger.log("- ".concat(cmd, " ").concat(space, " set <key>=<value> [<key>=<value> ...]"));
77
+ logger.log("- ".concat(cmd, " ").concat(space, " get <key> [<key> ...]"));
78
+ logger.log("- ".concat(cmd, " ").concat(space, " delete <key> [<key> ...]"));
79
+ logger.log("- ".concat(cmd, " ").concat(space, " list [--json]"));
79
80
  process.exit(1);
80
81
  }
81
82
  storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
83
+ commonHandleNotKeyTips = function (method) {
84
+ logger.error("Please enter the data in the format: ".concat(chalk_1["default"].yellow("zeus config ".concat(method, " <key>"))));
85
+ };
82
86
  switch (method) {
83
- case 'set':
87
+ case 'set': {
88
+ if (!values.length) {
89
+ logger.error("Please enter the data in the format: ".concat(chalk_1["default"].yellow('zeus config set <key>=<value>')));
90
+ break;
91
+ }
84
92
  values.forEach(function (info) {
85
- var _a = info.split('='), key = _a[0], value = _a[1];
86
- storage.set(key, value);
87
- logger.info("config: " + key + "=" + value);
93
+ var _a = info.split('='), _b = _a[0], key = _b === void 0 ? '' : _b, _c = _a[1], value = _c === void 0 ? '' : _c;
94
+ key = key.trim();
95
+ value = value.trim();
96
+ if (!info.includes('=')) {
97
+ logger.error('Please enter the data in the format <key>=<value>');
98
+ }
99
+ else if (value === '') {
100
+ logger.error('please input <value>');
101
+ }
102
+ else if (key === '') {
103
+ logger.error('please input <key>');
104
+ }
105
+ else {
106
+ // 切换登录环境时清除原有 token
107
+ if (key === project_1.ACCOUNT_ENV_KEY && storage.get(project_1.ACCOUNT_ENV_KEY) !== value) {
108
+ storage["delete"](project_1.loginStorageKey.accountToken);
109
+ }
110
+ storage.set(key, value);
111
+ logger.success("config: ".concat(key, "=").concat(value));
112
+ }
88
113
  });
89
114
  break;
90
- case 'get':
115
+ }
116
+ case 'get': {
117
+ if (!values.length) {
118
+ commonHandleNotKeyTips('get');
119
+ break;
120
+ }
91
121
  values.forEach(function (key) {
92
- logger.log(key + "=" + storage.get(key));
122
+ var curKey = key.trim();
123
+ if (!storage.has(key) || !key) {
124
+ logger.error('The <key> does not exist');
125
+ }
126
+ else {
127
+ logger.log("".concat(curKey, "=").concat(storage.get(curKey)));
128
+ }
93
129
  });
94
130
  break;
95
- case 'delete':
131
+ }
132
+ case 'delete': {
133
+ if (!values.length) {
134
+ commonHandleNotKeyTips('delete');
135
+ break;
136
+ }
96
137
  values.forEach(function (key) {
97
- storage["delete"](key);
98
- logger.info("config: " + key + " deleted");
138
+ var curKey = key.trim();
139
+ if (!storage.has(key) || !key) {
140
+ logger.error('The <key> does not exist');
141
+ }
142
+ else {
143
+ storage["delete"](curKey);
144
+ logger.success("config: ".concat(curKey, " deleted"));
145
+ }
99
146
  });
100
147
  break;
101
- case 'list':
148
+ }
149
+ case 'list': {
102
150
  config_1 = storage.getAll();
103
151
  Object.keys(config_1).forEach(function (key) {
104
152
  if (lodash_1["default"].startsWith(key, '____')) {
@@ -110,10 +158,11 @@ var config = function (args) { return __awaiter(void 0, void 0, void 0, function
110
158
  }
111
159
  else {
112
160
  Object.keys(config_1).forEach(function (key) {
113
- logger.log(key + "=" + config_1[key]);
161
+ logger.log("".concat(key, "=").concat(config_1[key]));
114
162
  });
115
163
  }
116
164
  break;
165
+ }
117
166
  default:
118
167
  break;
119
168
  }