@zeppos/zeus-cli 1.0.10 → 1.0.16

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 (74) hide show
  1. package/bin/cli.js +2 -0
  2. package/modules/build.js +34 -7
  3. package/modules/config.js +55 -11
  4. package/modules/create/index.js +57 -18
  5. package/modules/create/local-app.js +28 -4
  6. package/modules/help.js +1 -0
  7. package/modules/login.js +17 -9
  8. package/modules/run.js +34 -30
  9. package/package.json +2 -2
  10. package/public/template/empty/app.js +1 -1
  11. package/public/template/empty/app.json +1 -8
  12. package/public/template/empty/watchface/index.js +13 -0
  13. package/public/template/hello-world/app.js +1 -1
  14. package/public/template/timer/app.js +10 -0
  15. package/public/template/timer/app.json +50 -0
  16. package/public/template/timer/assets/gtr-3-pro/images/bg/bg.png +0 -0
  17. package/public/template/timer/assets/gtr-3-pro/images/bigNum/0.png +0 -0
  18. package/public/template/timer/assets/gtr-3-pro/images/bigNum/1.png +0 -0
  19. package/public/template/timer/assets/gtr-3-pro/images/bigNum/2.png +0 -0
  20. package/public/template/timer/assets/gtr-3-pro/images/bigNum/3.png +0 -0
  21. package/public/template/timer/assets/gtr-3-pro/images/bigNum/4.png +0 -0
  22. package/public/template/timer/assets/gtr-3-pro/images/bigNum/5.png +0 -0
  23. package/public/template/timer/assets/gtr-3-pro/images/bigNum/6.png +0 -0
  24. package/public/template/timer/assets/gtr-3-pro/images/bigNum/7.png +0 -0
  25. package/public/template/timer/assets/gtr-3-pro/images/bigNum/8.png +0 -0
  26. package/public/template/timer/assets/gtr-3-pro/images/bigNum/9.png +0 -0
  27. package/public/template/timer/assets/gtr-3-pro/images/bigNum/sp.png +0 -0
  28. package/public/template/timer/assets/gtr-3-pro/images/btn/back.png +0 -0
  29. package/public/template/timer/assets/gtr-3-pro/images/btn/lv.png +0 -0
  30. package/public/template/timer/assets/gtr-3-pro/images/btn/red.png +0 -0
  31. package/public/template/timer/assets/gtr-3-pro/images/point/bg.png +0 -0
  32. package/public/template/timer/assets/gtr-3-pro/images/point/bottom.png +0 -0
  33. package/public/template/timer/assets/gtr-3-pro/images/point/center.png +0 -0
  34. package/public/template/timer/assets/gtr-3-pro/images/point/h.png +0 -0
  35. package/public/template/timer/assets/gtr-3-pro/images/point/left.png +0 -0
  36. package/public/template/timer/assets/gtr-3-pro/images/point/m.png +0 -0
  37. package/public/template/timer/assets/gtr-3-pro/images/point/right.png +0 -0
  38. package/public/template/timer/assets/gtr-3-pro/images/point/s.png +0 -0
  39. package/public/template/timer/assets/gtr-3-pro/images/preview.png +0 -0
  40. package/public/template/timer/assets/gtr-3-pro/images/second/second.png +0 -0
  41. package/public/template/timer/assets/gtr-3-pro/images/smallNum/0.png +0 -0
  42. package/public/template/timer/assets/gtr-3-pro/images/smallNum/1.png +0 -0
  43. package/public/template/timer/assets/gtr-3-pro/images/smallNum/2.png +0 -0
  44. package/public/template/timer/assets/gtr-3-pro/images/smallNum/3.png +0 -0
  45. package/public/template/timer/assets/gtr-3-pro/images/smallNum/4.png +0 -0
  46. package/public/template/timer/assets/gtr-3-pro/images/smallNum/5.png +0 -0
  47. package/public/template/timer/assets/gtr-3-pro/images/smallNum/6.png +0 -0
  48. package/public/template/timer/assets/gtr-3-pro/images/smallNum/7.png +0 -0
  49. package/public/template/timer/assets/gtr-3-pro/images/smallNum/8.png +0 -0
  50. package/public/template/timer/assets/gtr-3-pro/images/smallNum/9.png +0 -0
  51. package/public/template/timer/assets/gtr-3-pro/images/smallNum/d.png +0 -0
  52. package/public/template/timer/assets/gtr-3-pro/images/smallNum/n.png +0 -0
  53. package/public/template/timer/assets/gtr-3-pro/images/week_ch/1.png +0 -0
  54. package/public/template/timer/assets/gtr-3-pro/images/week_ch/2.png +0 -0
  55. package/public/template/timer/assets/gtr-3-pro/images/week_ch/3.png +0 -0
  56. package/public/template/timer/assets/gtr-3-pro/images/week_ch/4.png +0 -0
  57. package/public/template/timer/assets/gtr-3-pro/images/week_ch/5.png +0 -0
  58. package/public/template/timer/assets/gtr-3-pro/images/week_ch/6.png +0 -0
  59. package/public/template/timer/assets/gtr-3-pro/images/week_ch/7.png +0 -0
  60. package/public/template/timer/assets/gtr-3-pro/images/week_en/1.png +0 -0
  61. package/public/template/timer/assets/gtr-3-pro/images/week_en/2.png +0 -0
  62. package/public/template/timer/assets/gtr-3-pro/images/week_en/3.png +0 -0
  63. package/public/template/timer/assets/gtr-3-pro/images/week_en/4.png +0 -0
  64. package/public/template/timer/assets/gtr-3-pro/images/week_en/5.png +0 -0
  65. package/public/template/timer/assets/gtr-3-pro/images/week_en/6.png +0 -0
  66. package/public/template/timer/assets/gtr-3-pro/images/week_en/7.png +0 -0
  67. package/public/template/timer/shared/buffer.js +11 -0
  68. package/public/template/timer/shared/device-polyfill.js +3 -0
  69. package/public/template/timer/shared/global.js +17 -0
  70. package/public/template/timer/shared/js-module.js +27 -0
  71. package/public/template/timer/shared/logger.js +21 -0
  72. package/public/template/timer/shared/setTimeout.js +59 -0
  73. package/public/template/timer/watchface/gtr-3-pro/index.js +1 -0
  74. package/public/template/timer/watchface/round/index.js +438 -0
package/bin/cli.js CHANGED
@@ -21,8 +21,10 @@ 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)
28
30
  .fail(index_1.help)
package/modules/build.js CHANGED
@@ -85,6 +85,7 @@ var inquirer_1 = __importDefault(require("inquirer"));
85
85
  var login_1 = require("./login");
86
86
  var logger = __importStar(require("../utils/logger"));
87
87
  var storage_1 = require("./storage");
88
+ var project_1 = require("../config/project");
88
89
  var STUDIO_URL = 'https://studio.huami.com';
89
90
  var BuildMode;
90
91
  (function (BuildMode) {
@@ -119,7 +120,7 @@ var build = function (mode, packages) {
119
120
  if (mode === void 0) { mode = BuildMode.PROD; }
120
121
  if (packages === void 0) { packages = []; }
121
122
  return __awaiter(void 0, void 0, void 0, function () {
122
- var workspace, choosedPackages, buildOptions, buildInfo, DistDir_1;
123
+ var workspace, choosedPackages, buildOptions, buildInfo_1, DistDir_1, error_1;
123
124
  return __generator(this, function (_a) {
124
125
  switch (_a.label) {
125
126
  case 0:
@@ -148,18 +149,32 @@ var build = function (mode, packages) {
148
149
  if (mode === BuildMode.PROD || mode === BuildMode.PREVIEW) {
149
150
  buildOptions.png2vg = true;
150
151
  }
151
- return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
152
+ _a.label = 4;
152
153
  case 4:
153
- buildInfo = _a.sent();
154
- if (buildInfo) {
154
+ _a.trys.push([4, 9, , 10]);
155
+ if (!(mode === BuildMode.DEV)) return [3 /*break*/, 6];
156
+ return [4 /*yield*/, (0, node_js_1.startWithoutDist)(buildOptions)];
157
+ case 5:
158
+ _a.sent();
159
+ return [2 /*return*/, (0, node_js_1.getZpkBuf)(packages[0])];
160
+ case 6: return [4 /*yield*/, (0, node_js_1.start)(buildOptions)];
161
+ case 7:
162
+ buildInfo_1 = _a.sent();
163
+ if (buildInfo_1) {
155
164
  DistDir_1 = path.join(workspace, 'dist');
156
165
  rd.eachFileSync(DistDir_1, function (file) {
157
- if (file !== path.join(DistDir_1, buildInfo)) {
166
+ if (file !== path.join(DistDir_1, buildInfo_1)) {
158
167
  fs_extra_1["default"].removeSync(file);
159
168
  }
160
169
  });
161
170
  }
162
- return [2 /*return*/, buildInfo];
171
+ return [2 /*return*/, buildInfo_1];
172
+ case 8: return [3 /*break*/, 10];
173
+ case 9:
174
+ error_1 = _a.sent();
175
+ logger.error(error_1);
176
+ return [3 /*break*/, 10];
177
+ case 10: return [2 /*return*/];
163
178
  }
164
179
  });
165
180
  });
@@ -173,12 +188,24 @@ var buildProd = function (packages) {
173
188
  return (0, exports.build)(BuildMode.PROD, packages);
174
189
  };
175
190
  exports.buildProd = buildProd;
191
+ var checkIsWatchFaceProject = function () {
192
+ var appJsonPath = path.resolve('./app.json');
193
+ var appJsonContent = fs_extra_1["default"].readJsonSync(appJsonPath);
194
+ var appType = lodash_1["default"].get(appJsonContent, 'app.appType');
195
+ return appType === project_1.AppType.WATCHFACE;
196
+ };
176
197
  var buildPreview = function (args) { return __awaiter(void 0, void 0, void 0, function () {
177
- var storage, userToken, form, buildInfo;
198
+ var storage, isWatchFaceProject, userToken, form, buildInfo;
178
199
  return __generator(this, function (_a) {
179
200
  switch (_a.label) {
180
201
  case 0:
181
202
  storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
203
+ isWatchFaceProject = checkIsWatchFaceProject();
204
+ // TODO: preview 支持打包表盘
205
+ if (isWatchFaceProject) {
206
+ logger.info('coming soon');
207
+ return [2 /*return*/];
208
+ }
182
209
  return [4 /*yield*/, (0, login_1.login)(args)];
183
210
  case 1:
184
211
  userToken = _a.sent();
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('='), key = _a[0], value = _a[1];
86
- storage.set(key, value);
87
- logger.info("config: " + key + "=" + value);
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
- case 'get':
110
+ }
111
+ case 'get': {
112
+ if (!values.length) {
113
+ commonHandleNotKeyTips('get');
114
+ break;
115
+ }
91
116
  values.forEach(function (key) {
92
- logger.log(key + "=" + storage.get(key));
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
- case 'delete':
126
+ }
127
+ case 'delete': {
128
+ if (!values.length) {
129
+ commonHandleNotKeyTips('delete');
130
+ break;
131
+ }
96
132
  values.forEach(function (key) {
97
- storage["delete"](key);
98
- logger.info("config: " + key + " deleted");
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
- case 'list':
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
  }
@@ -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, choosedPkg;
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
- ], localChoices, true)
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
- choosedPkg = localChoices[answer.template];
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 (choosedPkg.type === project_1.AppSourceType.YEOMAN) {
223
- logger.info(lodash_1["default"].upperFirst(cmd) + " application using yeoman template \"" + choosedPkg.name + "\".");
224
- (0, yeoman_app_1.createYeomanApp)(__assign(__assign({}, answer), { env: env, templateInfo: generagtorMate[choosedPkg.name] }));
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 \"" + choosedPkg.name + "\".");
228
- (0, local_app_1.createLocalApp)(__assign(__assign({}, answer), { templateInfo: localChoices[answer.template] }));
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 \"" + choosedPkg.name + "\" template.\n");
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");
package/modules/login.js CHANGED
@@ -58,7 +58,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
58
58
  return (mod && mod.__esModule) ? mod : { "default": mod };
59
59
  };
60
60
  exports.__esModule = true;
61
- exports.login = void 0;
61
+ exports.logout = exports.login = void 0;
62
62
  var qs_1 = __importDefault(require("qs"));
63
63
  var lodash_1 = __importDefault(require("lodash"));
64
64
  var axios_1 = __importDefault(require("axios"));
@@ -128,13 +128,11 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
128
128
  case 0:
129
129
  storage = new storage_1.Storage({ cmd: lodash_1["default"].get(args, '$0') });
130
130
  accountInfo = storage.get(project_1.loginStorageKey.account);
131
- if (!lodash_1["default"].get(args, 'relogin')) {
132
- historyToken = storage.get(project_1.loginStorageKey.accountToken);
133
- if (historyToken) {
134
- // logger.success(`have logged in with account: ${accountInfo}`)
135
- logger.success("Has logged");
136
- return [2 /*return*/, historyToken];
137
- }
131
+ historyToken = storage.get(project_1.loginStorageKey.accountToken);
132
+ if (!lodash_1["default"].get(args, 'relogin') && historyToken) {
133
+ // logger.success(`have logged in with account: ${accountInfo}`)
134
+ logger.success("Has logged");
135
+ return [2 /*return*/, historyToken];
138
136
  }
139
137
  isLocal = false;
140
138
  if (!isLocal) return [3 /*break*/, 3];
@@ -184,7 +182,10 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
184
182
  storage.set(project_1.loginStorageKey.accountToken, appToken);
185
183
  logger.success('logger success');
186
184
  server.close();
187
- process.exit(1);
185
+ // 在执行 preview 命令需要登录时不退出程序
186
+ if (!args) {
187
+ process.exit(1);
188
+ }
188
189
  }
189
190
  });
190
191
  server.listen(project_1.LocalServerConfig.PORT, project_1.LocalServerConfig.HOSTNAME);
@@ -204,3 +205,10 @@ var login = function (args) { return __awaiter(void 0, void 0, void 0, function
204
205
  });
205
206
  }); };
206
207
  exports.login = login;
208
+ var logout = function () {
209
+ var storage = new storage_1.Storage({ cmd: '' });
210
+ storage["delete"](project_1.loginStorageKey.accountToken);
211
+ storage["delete"](project_1.loginStorageKey.account);
212
+ logger.success('Logged out');
213
+ };
214
+ exports.logout = logout;
package/modules/run.js CHANGED
@@ -63,10 +63,8 @@ var fs_1 = __importDefault(require("fs"));
63
63
  var lodash_1 = __importDefault(require("lodash"));
64
64
  var chalk_1 = __importDefault(require("chalk"));
65
65
  var path = __importStar(require("path"));
66
- var fs_extra_1 = __importDefault(require("fs-extra"));
67
66
  var inquirer_1 = __importDefault(require("inquirer"));
68
67
  var chokidar_1 = __importDefault(require("chokidar"));
69
- var compressing = __importStar(require("compressing"));
70
68
  var logger = __importStar(require("../utils/logger"));
71
69
  var build_1 = require("./build");
72
70
  var storage_1 = require("./storage");
@@ -116,45 +114,51 @@ var run = function (args) { return __awaiter(void 0, void 0, void 0, function ()
116
114
  packages = _a.sent();
117
115
  simulator = new simulator_1.Simulator("http://" + simulatorHost + ":" + simulatorPort);
118
116
  refreshSimulator = lodash_1["default"].debounce(function () { return __awaiter(void 0, void 0, void 0, function () {
119
- var zabName, zabPath, uzipZabPath, zabFileList, zabBuffer, zpkFileName, zpkPath, projectName, targetDeviceInternalName;
117
+ var zpkBuffer, targetDeviceInternalName, projectName;
120
118
  return __generator(this, function (_a) {
121
119
  switch (_a.label) {
122
120
  case 0:
123
121
  logger.info('rebuilding...');
124
122
  return [4 /*yield*/, (0, build_1.buildDev)(packages)];
125
123
  case 1:
126
- zabName = _a.sent();
127
- zabPath = path.resolve("./dist/" + zabName);
128
- if (!fs_1["default"].existsSync(zabPath)) return [3 /*break*/, 3];
129
- logger.info('rebuild done');
130
- uzipZabPath = path.resolve(zabPath, '../zab');
131
- logger.info('getting device package...');
132
- return [4 /*yield*/, compressing.zip.uncompress(zabPath, uzipZabPath)];
133
- case 2:
134
- _a.sent();
135
- zabFileList = fs_1["default"].readdirSync(uzipZabPath);
136
- zabBuffer = Buffer.alloc(0);
137
- if (packages.length === 1) {
138
- zpkFileName = lodash_1["default"].find(zabFileList, function (fileName) {
139
- return lodash_1["default"].startsWith(fileName, packages[0] + ".");
140
- });
141
- if (zpkFileName) {
142
- zpkPath = path.resolve(uzipZabPath, "./" + zpkFileName);
143
- zabBuffer = Buffer.from(fs_1["default"].readFileSync(zpkPath));
144
- }
145
- }
146
- projectName = process.cwd().split('/').slice(-1)[0];
147
- if (zabBuffer.length) {
124
+ zpkBuffer = _a.sent();
125
+ if (zpkBuffer) {
126
+ logger.info('rebuild done');
148
127
  logger.info('refrshing simulator...');
149
128
  targetDeviceInternalName = getDeviceInternalCodename(packages[0]);
150
- simulator.upload(zabBuffer, projectName, targetDeviceInternalName);
129
+ projectName = process.cwd().split('/').slice(-1)[0];
130
+ simulator.upload(zpkBuffer, projectName, targetDeviceInternalName);
151
131
  }
152
132
  else {
153
- logger.error('can\'t find device package, pleace check the build result');
133
+ logger.error('build error');
154
134
  }
155
- fs_extra_1["default"].removeSync(uzipZabPath);
156
- _a.label = 3;
157
- case 3:
135
+ // const zabPath = path.resolve(`./dist/${zabName}`)
136
+ // if (fs.existsSync(zabPath)) {
137
+ // logger.info('rebuild done')
138
+ // const uzipZabPath = path.resolve(zabPath, '../zab')
139
+ // logger.info('getting device package...')
140
+ // await compressing.zip.uncompress(zabPath, uzipZabPath)
141
+ // const zabFileList = fs.readdirSync(uzipZabPath)
142
+ // let zabBuffer: Buffer = Buffer.alloc(0)
143
+ // if (packages.length === 1) {
144
+ // const zpkFileName = _.find(zabFileList, (fileName) => {
145
+ // return _.startsWith(fileName, `${packages[0]}.`)
146
+ // })
147
+ // if (zpkFileName) {
148
+ // const zpkPath = path.resolve(uzipZabPath, `./${zpkFileName}`)
149
+ // zabBuffer = Buffer.from(fs.readFileSync(zpkPath))
150
+ // }
151
+ // }
152
+ // const projectName = process.cwd().split('/').slice(-1)[0]
153
+ // if (zabBuffer.length) {
154
+ // logger.info('refrshing simulator...')
155
+ // const targetDeviceInternalName = getDeviceInternalCodename(packages[0])
156
+ // simulator.upload(zabBuffer, projectName, targetDeviceInternalName)
157
+ // } else {
158
+ // logger.error('can\'t find device package, pleace check the build result')
159
+ // }
160
+ // fsExtra.removeSync(uzipZabPath)
161
+ // }
158
162
  if (!hasStarted) {
159
163
  hasStarted = true;
160
164
  logger.log(chalk_1["default"].green("[" + args['$0'] + "] watching the changes in this project..."));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeppos/zeus-cli",
3
- "version": "1.0.10",
3
+ "version": "1.0.16",
4
4
  "description": "zeus mini-program tools",
5
5
  "main": "index.js",
6
6
  "author": "zepp",
@@ -37,7 +37,7 @@
37
37
  "webpack": "^5.52.0"
38
38
  },
39
39
  "dependencies": {
40
- "@zeppos/zpm": "^2.1.37",
40
+ "@zeppos/zpm": "^2.1.48",
41
41
  "axios": "^0.23.0",
42
42
  "chalk": "^4.1.2",
43
43
  "chokidar": "^3.5.2",
@@ -14,7 +14,7 @@ App({
14
14
  console.log('app on hide invoke')
15
15
  },
16
16
 
17
- onDestory(options) {
17
+ onDestroy(options) {
18
18
  console.log('app on destory invoke')
19
19
  },
20
20
 
@@ -26,14 +26,7 @@
26
26
  "page": {
27
27
  "pages": [
28
28
  "pages/index"
29
- ],
30
- "window": {
31
- "navigationBarBackgroundColor": "#ffffff",
32
- "navigationBarTextStyle": "black",
33
- "navigationBarTitleText": "empty",
34
- "backgroundColor": "#eeeeee",
35
- "backgroundTextStyle": "light"
36
- }
29
+ ]
37
30
  },
38
31
  "app-side": {
39
32
  "path": "app-side/index"
@@ -0,0 +1,13 @@
1
+ WatchFace({
2
+ onInit() {
3
+ console.log('index page.js on init invoke')
4
+ },
5
+
6
+ build() {
7
+ console.log('index page.js on build invoke')
8
+ },
9
+
10
+ onDestroy() {
11
+ console.log('index page.js on destroy invoke')
12
+ },
13
+ })
@@ -14,7 +14,7 @@ App({
14
14
  console.log('app on hide invoke')
15
15
  },
16
16
 
17
- onDestory(options) {
17
+ onDestroy(options) {
18
18
  console.log('app on destory invoke')
19
19
  },
20
20
 
@@ -0,0 +1,10 @@
1
+ import './shared/device-polyfill'
2
+
3
+ App({
4
+ globalData: {},
5
+ onCreate(options) {},
6
+ onDestroy(options) {},
7
+ onError(error) {},
8
+ onPageNotFound(obj) {},
9
+ onUnhandledRejection(obj) {},
10
+ })