@serverless-devs/s 2.0.100 → 2.0.101-beta.3

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/lib/help/index.js CHANGED
@@ -40,10 +40,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
42
  var utils_1 = require("../utils");
43
- var lodash_1 = require("lodash");
44
43
  var core_1 = __importDefault(require("../utils/core"));
45
44
  var path_1 = __importDefault(require("path"));
46
- var makeUnderLine = core_1.default.makeUnderLine, publishHelp = core_1.default.publishHelp, getGlobalArgs = core_1.default.getGlobalArgs, getYamlContent = core_1.default.getYamlContent, loadComponent = core_1.default.loadComponent;
45
+ var makeUnderLine = core_1.default.makeUnderLine, publishHelp = core_1.default.publishHelp, getGlobalArgs = core_1.default.getGlobalArgs, getYamlContent = core_1.default.getYamlContent, loadComponent = core_1.default.loadComponent, chalk = core_1.default.chalk, lodash = core_1.default.lodash;
46
+ var underline = chalk.underline, bold = chalk.bold;
47
+ var get = lodash.get, keys = lodash.keys, isPlainObject = lodash.isPlainObject, values = lodash.values, first = lodash.first;
47
48
  var descption = {
48
49
  Options: [
49
50
  { '--debug': 'Open debug model.' },
@@ -66,66 +67,83 @@ var descption = {
66
67
  };
67
68
  function help(program) {
68
69
  return __awaiter(this, void 0, void 0, function () {
69
- var helperLength, _a, rawData, template, help, customeDescription, originSpath, spath, yamlData, serviceList, _i, serviceList_1, service, component, instance, publishPath, publishContent, commands, key, error_1, output;
70
- var _b, _c;
71
- return __generator(this, function (_d) {
72
- switch (_d.label) {
70
+ var helperLength, _a, rawData, template, help, customeDescription, originSpath, spath, yamlData, serviceList, _i, serviceList_1, service, component, instance, publishPath, publishContent, commands, key, error_1, useObject, tmp, _b, customeDescription_1, item, key, ele, output;
71
+ var _c, _d;
72
+ return __generator(this, function (_e) {
73
+ switch (_e.label) {
73
74
  case 0:
74
75
  helperLength = publishHelp.maxLen(descption.Options);
75
76
  _a = getGlobalArgs(process.argv.slice(2)), rawData = _a._, template = _a.template, help = _a.help;
76
77
  customeDescription = [];
77
78
  if (!(rawData.length === 0 && help)) return [3 /*break*/, 10];
78
- _d.label = 1;
79
+ _e.label = 1;
79
80
  case 1:
80
- _d.trys.push([1, 9, , 10]);
81
+ _e.trys.push([1, 9, , 10]);
81
82
  return [4 /*yield*/, core_1.default.getTemplatePath(template)];
82
83
  case 2:
83
- originSpath = _d.sent();
84
+ originSpath = _e.sent();
84
85
  return [4 /*yield*/, core_1.default.transforYamlPath(originSpath)];
85
86
  case 3:
86
- spath = _d.sent();
87
+ spath = _e.sent();
87
88
  if (!spath) return [3 /*break*/, 8];
88
89
  return [4 /*yield*/, getYamlContent(spath)];
89
90
  case 4:
90
- yamlData = _d.sent();
91
- serviceList = (0, lodash_1.keys)((0, lodash_1.get)(yamlData, 'services'));
91
+ yamlData = _e.sent();
92
+ serviceList = keys(get(yamlData, 'services'));
92
93
  if (!(serviceList.length > 1)) return [3 /*break*/, 5];
93
94
  for (_i = 0, serviceList_1 = serviceList; _i < serviceList_1.length; _i++) {
94
95
  service = serviceList_1[_i];
95
- customeDescription.push((_b = {},
96
- _b["".concat(service, " [options]")] = "Please use [s ".concat(service, " -h] obtain the documentation."),
97
- _b));
96
+ customeDescription.push((_c = {},
97
+ _c["".concat(service, " [options]")] = "Please use [s ".concat(service, " -h] obtain the documentation."),
98
+ _c));
98
99
  }
99
100
  return [3 /*break*/, 8];
100
101
  case 5:
101
- component = (0, lodash_1.get)(yamlData, ['services', serviceList[0], 'component']);
102
+ component = get(yamlData, ['services', serviceList[0], 'component']);
102
103
  return [4 /*yield*/, loadComponent(component)];
103
104
  case 6:
104
- instance = _d.sent();
105
+ instance = _e.sent();
105
106
  publishPath = path_1.default.join(instance.__path, 'publish.yaml');
106
107
  return [4 /*yield*/, getYamlContent(publishPath)];
107
108
  case 7:
108
- publishContent = _d.sent();
109
+ publishContent = _e.sent();
109
110
  commands = publishContent.Commands;
110
111
  if (commands) {
111
112
  for (key in commands) {
112
- customeDescription.push((_c = {}, _c[key] = commands[key], _c));
113
+ customeDescription.push((_d = {}, _d[key] = commands[key], _d));
113
114
  }
114
115
  }
115
- _d.label = 8;
116
+ _e.label = 8;
116
117
  case 8: return [3 /*break*/, 10];
117
118
  case 9:
118
- error_1 = _d.sent();
119
+ error_1 = _e.sent();
119
120
  return [3 /*break*/, 10];
120
121
  case 10:
122
+ useObject = isPlainObject(first(values(get(customeDescription, '[0]'))));
123
+ tmp = [];
124
+ if (useObject) {
125
+ tmp.push(underline(bold('Custom Commands\n\n')));
126
+ for (_b = 0, customeDescription_1 = customeDescription; _b < customeDescription_1.length; _b++) {
127
+ item = customeDescription_1[_b];
128
+ if (isPlainObject(item)) {
129
+ for (key in item) {
130
+ ele = item[key];
131
+ tmp.push(publishHelp.helpInfo(ele, underline(bold(key)), helperLength, 4));
132
+ }
133
+ }
134
+ }
135
+ }
136
+ else {
137
+ tmp = [publishHelp.helpInfo(customeDescription, 'Custom Commands', helperLength)];
138
+ }
139
+ tmp.push('\n');
121
140
  output = [
122
- "".concat((0, utils_1.emoji)('🚀'), " Welcome to the Serverless Devs.\n"),
123
- publishHelp.helpInfo(descption.Options, 'Options', helperLength),
124
- publishHelp.helpInfo(descption.Commands, 'Commands', helperLength),
125
- publishHelp.helpInfo(customeDescription, 'Custom Commands', helperLength),
126
- publishHelp.helpInfo(descption.Examples, 'Examples', helperLength),
127
- "".concat((0, utils_1.emoji)('🧭'), " ").concat(makeUnderLine('More information: https://github.com/Serverless-Devs/Serverless-Devs'), " ") + '\n',
128
- ].join('\n');
141
+ "".concat((0, utils_1.emoji)('🚀'), " Welcome to the Serverless Devs.\n\n"),
142
+ publishHelp.helpInfo(descption.Options, 'Options', helperLength) + '\n',
143
+ publishHelp.helpInfo(descption.Commands, 'Commands', helperLength) + '\n',
144
+ ]
145
+ .concat(tmp, publishHelp.helpInfo(descption.Examples, 'Examples', helperLength) + '\n', "".concat((0, utils_1.emoji)('🧭'), " ").concat(makeUnderLine('More information: https://github.com/Serverless-Devs/Serverless-Devs'), "\n"))
146
+ .join('');
129
147
  program.on('--help', function () {
130
148
  console.log(output);
131
149
  });
@@ -135,4 +153,4 @@ function help(program) {
135
153
  });
136
154
  }
137
155
  exports.default = help;
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtDQUFpQztBQUNqQyxpQ0FBbUM7QUFDbkMsdURBQWlDO0FBQ2pDLDhDQUF3QjtBQUNoQixJQUFBLGFBQWEsR0FBZ0UsY0FBSSxjQUFwRSxFQUFFLFdBQVcsR0FBbUQsY0FBSSxZQUF2RCxFQUFFLGFBQWEsR0FBb0MsY0FBSSxjQUF4QyxFQUFFLGNBQWMsR0FBb0IsY0FBSSxlQUF4QixFQUFFLGFBQWEsR0FBSyxjQUFJLGNBQVQsQ0FBVTtBQUUxRixJQUFNLFNBQVMsR0FBRztJQUNoQixPQUFPLEVBQUU7UUFDUCxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRTtRQUNsQyxFQUFFLGdCQUFnQixFQUFFLDJCQUEyQixFQUFFO1FBQ2pELEVBQUUsdUJBQXVCLEVBQUUsNEJBQTRCLEVBQUU7UUFDekQsRUFBRSwwQkFBMEIsRUFBRSxnQ0FBZ0MsRUFBRTtRQUNoRSxFQUFFLGVBQWUsRUFBRSw0QkFBNEIsRUFBRTtRQUNqRCxFQUFFLFlBQVksRUFBRSwyQkFBMkIsRUFBRTtLQUM5QztJQUNELFFBQVEsRUFBRTtRQUNSLEVBQUUsTUFBTSxFQUFFLGdDQUFnQyxFQUFFO1FBQzVDLEVBQUUsSUFBSSxFQUFFLHdDQUF3QyxFQUFFO1FBQ2xELEVBQUUsR0FBRyxFQUFFLCtDQUErQyxFQUFFO1FBQ3hELEVBQUUsTUFBTSxFQUFFLDZCQUE2QixFQUFFO1FBQ3pDLEVBQUUsR0FBRyxFQUFFLDRCQUE0QixFQUFFO1FBQ3JDLEVBQUUsS0FBSyxFQUFFLCtCQUErQixFQUFFO1FBQzFDLEVBQUUsU0FBUyxFQUFFLHNDQUFzQyxFQUFFO0tBQ3REO0lBQ0QsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsbURBQW1ELEVBQUUsQ0FBQztDQUMxRSxD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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtDQUFpQztBQUNqQyx1REFBaUM7QUFDakMsOENBQXdCO0FBQ2hCLElBQUEsYUFBYSxHQUErRSxjQUFJLGNBQW5GLEVBQUUsV0FBVyxHQUFrRSxjQUFJLFlBQXRFLEVBQUUsYUFBYSxHQUFtRCxjQUFJLGNBQXZELEVBQUUsY0FBYyxHQUFtQyxjQUFJLGVBQXZDLEVBQUUsYUFBYSxHQUFvQixjQUFJLGNBQXhCLEVBQUUsS0FBSyxHQUFhLGNBQUksTUFBakIsRUFBRSxNQUFNLEdBQUssY0FBSSxPQUFULENBQVU7QUFDakcsSUFBQSxTQUFTLEdBQVcsS0FBSyxVQUFoQixFQUFFLElBQUksR0FBSyxLQUFLLEtBQVYsQ0FBVztBQUMxQixJQUFBLEdBQUcsR0FBeUMsTUFBTSxJQUEvQyxFQUFFLElBQUksR0FBbUMsTUFBTSxLQUF6QyxFQUFFLGFBQWEsR0FBb0IsTUFBTSxjQUExQixFQUFFLE1BQU0sR0FBWSxNQUFNLE9BQWxCLEVBQUUsS0FBSyxHQUFLLE1BQU0sTUFBWCxDQUFZO0FBRTNELElBQU0sU0FBUyxHQUFHO0lBQ2hCLE9BQU8sRUFBRTtRQUNQLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFO1FBQ2xDLEVBQUUsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUU7UUFDakQsRUFBRSx1QkFBdUIsRUFBRSw0QkFBNEIsRUFBRTtRQUN6RCxFQUFFLDBCQUEwQixFQUFFLGdDQUFnQyxFQUFFO1FBQ2hFLEVBQUUsZUFBZSxFQUFFLDRCQUE0QixFQUFFO1FBQ2pELEVBQUUsWUFBWSxFQUFFLDJCQUEyQixFQUFFO0tBQzlDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsRUFBRSxNQUFNLEVBQUUsZ0NBQWdDLEVBQUU7UUFDNUMsRUFBRSxJQUFJLEVB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