@serverless-devs/s 2.0.99 → 2.0.100-beta.10

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 (49) hide show
  1. package/a.yaml +38 -0
  2. package/bin/s-verify +2 -0
  3. package/lib/clean/index.js +26 -42
  4. package/lib/cli/index.js +49 -62
  5. package/lib/component/index.js +44 -40
  6. package/lib/config/add/index.js +43 -39
  7. package/lib/config/delete/index.js +45 -53
  8. package/lib/config/get/index.js +51 -47
  9. package/lib/config/index.js +26 -42
  10. package/lib/constant.js +7 -0
  11. package/lib/error/index.js +60 -24
  12. package/lib/help/index.js +135 -0
  13. package/lib/index.js +97 -106
  14. package/lib/init/index.js +81 -90
  15. package/lib/init/init-config.js +4 -4
  16. package/lib/init/init-manager.js +26 -222
  17. package/lib/onboarding/index.js +16 -8
  18. package/lib/set/analysis/index.js +46 -42
  19. package/lib/set/index.js +27 -43
  20. package/lib/set/locale/index.js +47 -55
  21. package/lib/set/registry/index.js +46 -54
  22. package/lib/set/workspace/index.js +47 -43
  23. package/lib/special-commad/index.js +124 -0
  24. package/lib/update-notifier/index.js +19 -19
  25. package/lib/utils/common.js +97 -186
  26. package/lib/utils/core.js +23 -4
  27. package/lib/utils/handler-set-config.js +2 -8
  28. package/lib/utils/index.js +27 -24
  29. package/lib/utils/logger.js +4 -32
  30. package/lib/verify/index.js +78 -0
  31. package/package.json +7 -18
  32. package/shell/postbuild.sh +2 -0
  33. package/lib/cli/cli-manager.js +0 -215
  34. package/lib/constants/index.js +0 -1
  35. package/lib/constants/static-variable.js +0 -8
  36. package/lib/core/command/command-manager.js +0 -184
  37. package/lib/core/component/hook.js +0 -182
  38. package/lib/core/component/index.js +0 -354
  39. package/lib/core/index.js +0 -7
  40. package/lib/core/plugin/index.js +0 -102
  41. package/lib/entiry/cli.js +0 -11
  42. package/lib/entiry/index.js +0 -7
  43. package/lib/specification/analysis.js +0 -45
  44. package/lib/specification/index.js +0 -14
  45. package/lib/specification/parse.js +0 -252
  46. package/lib/specification/version.js +0 -151
  47. package/lib/utils/command-util.js +0 -331
  48. package/lib/utils/storage.js +0 -31
  49. package/lib/utils/url-parser.js +0 -50
@@ -1,331 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
- return new (P || (P = Promise))(function (resolve, reject) {
24
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
- step((generator = generator.apply(thisArg, _arguments || [])).next());
28
- });
29
- };
30
- var __generator = (this && this.__generator) || function (thisArg, body) {
31
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
- function verb(n) { return function (v) { return step([n, v]); }; }
34
- function step(op) {
35
- if (f) throw new TypeError("Generator is already executing.");
36
- while (_) try {
37
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
38
- if (y = 0, t) op = [op[0] & 2, t.value];
39
- switch (op[0]) {
40
- case 0: case 1: t = op; break;
41
- case 4: _.label++; return { value: op[1], done: false };
42
- case 5: _.label++; y = op[1]; op = [0]; continue;
43
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
- default:
45
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
- if (t[2]) _.ops.pop();
50
- _.trys.pop(); continue;
51
- }
52
- op = body.call(thisArg, _);
53
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
- }
56
- };
57
- var __importDefault = (this && this.__importDefault) || function (mod) {
58
- return (mod && mod.__esModule) ? mod : { "default": mod };
59
- };
60
- Object.defineProperty(exports, "__esModule", { value: true });
61
- exports.recordCommandHistory = exports.registerVerbose = exports.registerUniversalCommand = exports.registerCustomerCommand = exports.registerCommandChecker = exports.createCustomerCommand = exports.getCustomerCommandInfo = exports.getParsedTemplateObj = exports.getCommandDetail = exports.createUniversalCommand = exports.setEnvbyDotenv = void 0;
62
- var os_1 = __importDefault(require("os"));
63
- var path_1 = __importDefault(require("path"));
64
- var commander_1 = require("@serverless-devs/commander");
65
- var core_1 = require("../core");
66
- var specification_1 = require("../specification");
67
- var static_variable_1 = require("../constants/static-variable");
68
- var storage_1 = __importDefault(require("./storage"));
69
- var logger_1 = __importDefault(require("./logger"));
70
- var common_1 = require("./common");
71
- var lodash_1 = __importStar(require("lodash"));
72
- var core_2 = __importDefault(require("./core"));
73
- var makeUnderLine = core_2.default.makeUnderLine, loadComponent = core_2.default.loadComponent, fs = core_2.default.fse, getYamlContent = core_2.default.getYamlContent, publishHelp = core_2.default.publishHelp;
74
- var getSubcommand = specification_1.version.getSubcommand, getServiceConfig = specification_1.version.getServiceConfig;
75
- function setEnvbyDotenv(templateFile) {
76
- return __awaiter(this, void 0, void 0, function () {
77
- var spath, data, services, key, element, codeUri;
78
- return __generator(this, function (_a) {
79
- switch (_a.label) {
80
- case 0:
81
- spath = path_1.default.dirname(templateFile);
82
- require('dotenv').config({ path: path_1.default.join(spath, '.env') });
83
- return [4 /*yield*/, getYamlContent(templateFile)];
84
- case 1:
85
- data = _a.sent();
86
- services = data.services;
87
- for (key in services) {
88
- element = services[key];
89
- codeUri = (0, lodash_1.get)(element, 'props.function.codeUri');
90
- if (codeUri) {
91
- codeUri = path_1.default.isAbsolute(codeUri) ? codeUri : path_1.default.join(spath, codeUri);
92
- require('dotenv').config({ path: path_1.default.join(codeUri, '.env') });
93
- }
94
- }
95
- return [2 /*return*/];
96
- }
97
- });
98
- });
99
- }
100
- exports.setEnvbyDotenv = setEnvbyDotenv;
101
- function createUniversalCommand(command, customerCommandName, description) {
102
- var _command = new commander_1.Command(command);
103
- var processArgv = [];
104
- var params = [];
105
- var _customerCommandName = customerCommandName;
106
- var start = false;
107
- for (var i = 0; i < process.argv.length; i++) {
108
- if (!start) {
109
- processArgv.push(process.argv[i]);
110
- }
111
- else {
112
- params.push(process.argv[i]);
113
- }
114
- if (process.argv[i] === command) {
115
- start = true;
116
- }
117
- }
118
- if (params.length !== 0) {
119
- process.env.temp_params = params.join(' ');
120
- process['temp_params'] = params;
121
- }
122
- process.argv = processArgv;
123
- _command.description(description || '').action(function () {
124
- var template = process.env[static_variable_1.PROCESS_ENV_TEMPLATE_NAME];
125
- if (template) {
126
- var commandManager = new core_1.CommandManager(template, command, _customerCommandName, process.env.temp_params);
127
- commandManager.init();
128
- }
129
- });
130
- return _command;
131
- }
132
- exports.createUniversalCommand = createUniversalCommand;
133
- function getCommandDetail(name, provider, version) {
134
- return __awaiter(this, void 0, void 0, function () {
135
- var command_list;
136
- return __generator(this, function (_a) {
137
- command_list = [];
138
- return [2 /*return*/, command_list];
139
- });
140
- });
141
- }
142
- exports.getCommandDetail = getCommandDetail;
143
- function getParsedTemplateObj(templateFile) {
144
- return __awaiter(this, void 0, void 0, function () {
145
- var parse, parsedObj, result;
146
- return __generator(this, function (_a) {
147
- switch (_a.label) {
148
- case 0:
149
- parse = new specification_1.Parse(templateFile);
150
- parsedObj = parse.getOriginalParsedObj();
151
- return [4 /*yield*/, parse.getRealVariables(parsedObj)];
152
- case 1:
153
- result = _a.sent();
154
- return [2 /*return*/, result];
155
- }
156
- });
157
- });
158
- }
159
- exports.getParsedTemplateObj = getParsedTemplateObj;
160
- function getCustomerCommandInfo(parsedTemplateObj) {
161
- return getSubcommand(parsedTemplateObj);
162
- }
163
- exports.getCustomerCommandInfo = getCustomerCommandInfo;
164
- function createCustomerCommand(templateFile) {
165
- return __awaiter(this, void 0, void 0, function () {
166
- var customerCommands, doc, subCommands, commandListPromise, commandListDetail, componentInstance, publishYamlInfor;
167
- var _this = this;
168
- return __generator(this, function (_a) {
169
- switch (_a.label) {
170
- case 0:
171
- customerCommands = [];
172
- return [4 /*yield*/, getParsedTemplateObj(templateFile)];
173
- case 1:
174
- doc = _a.sent();
175
- subCommands = getCustomerCommandInfo(doc);
176
- commandListPromise = subCommands.map(function (projectName) { return __awaiter(_this, void 0, void 0, function () {
177
- var projectDocDetail;
178
- return __generator(this, function (_a) {
179
- projectDocDetail = getServiceConfig(doc, projectName);
180
- return [2 /*return*/, { projectName: projectName, projectDocDetail: projectDocDetail }];
181
- });
182
- }); });
183
- return [4 /*yield*/, Promise.all(commandListPromise)];
184
- case 2:
185
- commandListDetail = _a.sent();
186
- // 只有一个指令的时候
187
- (0, lodash_1.forEach)(commandListDetail, function (_a) {
188
- var projectName = _a.projectName, projectDocDetail = _a.projectDocDetail;
189
- var customerCommand = new commander_1.Command(projectName);
190
- customerCommand._componentName = (0, lodash_1.get)(projectDocDetail, 'component');
191
- var _b = process.argv.slice(2), _customerCommandName = _b[0], methodName = _b[1];
192
- if (_customerCommandName === projectName && methodName && methodName.indexOf('-') !== 0) {
193
- customerCommand.addCommand(createUniversalCommand(methodName, projectName));
194
- }
195
- customerCommand.option('-h, --help', 'Print usage document');
196
- customerCommand.action(function () { return __awaiter(_this, void 0, void 0, function () {
197
- var component, componentInstance, publishYamlInfor, helperLength, e_1;
198
- return __generator(this, function (_a) {
199
- switch (_a.label) {
200
- case 0:
201
- component = projectDocDetail.component;
202
- return [4 /*yield*/, loadComponent(component)];
203
- case 1:
204
- componentInstance = _a.sent();
205
- if (!componentInstance) return [3 /*break*/, 6];
206
- _a.label = 2;
207
- case 2:
208
- _a.trys.push([2, 4, , 5]);
209
- return [4 /*yield*/, getYamlContent(path_1.default.join(componentInstance.__path, 'publish.yml'))];
210
- case 3:
211
- publishYamlInfor = _a.sent();
212
- console.log("".concat((0, common_1.emoji)('🚀'), " ").concat(publishYamlInfor['Name'], "@").concat(publishYamlInfor['Version'], ": ").concat(publishYamlInfor['Description'], "\n"));
213
- if (publishYamlInfor['Commands']) {
214
- helperLength = publishHelp.maxLen(publishYamlInfor['Commands']);
215
- console.log(publishHelp.helpInfo(publishYamlInfor['Commands'], 'Commands', helperLength));
216
- console.log("".concat(publishYamlInfor['HomePage']
217
- ? "".concat((0, common_1.emoji)('🧭'), " ").concat(makeUnderLine('More information: ' + publishYamlInfor['HomePage']), " ") + '\n'
218
- : ''));
219
- }
220
- return [3 /*break*/, 5];
221
- case 4:
222
- e_1 = _a.sent();
223
- logger_1.default.error('Help information could not be found');
224
- return [3 /*break*/, 5];
225
- case 5: return [3 /*break*/, 7];
226
- case 6:
227
- logger_1.default.error('Help information could not be found');
228
- _a.label = 7;
229
- case 7: return [2 /*return*/];
230
- }
231
- });
232
- }); });
233
- customerCommands.push(customerCommand);
234
- });
235
- if (!((0, lodash_1.size)(commandListDetail) === 1)) return [3 /*break*/, 5];
236
- return [4 /*yield*/, loadComponent((0, lodash_1.get)(lodash_1.default.first(commandListDetail), 'projectDocDetail.component'))];
237
- case 3:
238
- componentInstance = _a.sent();
239
- return [4 /*yield*/, getYamlContent(path_1.default.join(componentInstance.__path, 'publish.yml'))];
240
- case 4:
241
- publishYamlInfor = _a.sent();
242
- // @ts-ignore
243
- lodash_1.default.set(lodash_1.default.first(customerCommands), '_componentPublish', publishYamlInfor);
244
- _a.label = 5;
245
- case 5: return [2 /*return*/, customerCommands];
246
- }
247
- });
248
- });
249
- }
250
- exports.createCustomerCommand = createCustomerCommand;
251
- function registerCommandChecker(program) {
252
- program.on('command:*', function (cmds) {
253
- var commands = program.commands.map(function (command) { return command.name(); });
254
- if (!commands.includes(cmds[0])) {
255
- logger_1.default.error(" error: unknown command ".concat(cmds[0]));
256
- program.help();
257
- }
258
- });
259
- }
260
- exports.registerCommandChecker = registerCommandChecker;
261
- function registerCustomerCommand(system_command, templateFile) {
262
- return __awaiter(this, void 0, void 0, function () {
263
- var customerCommands;
264
- return __generator(this, function (_a) {
265
- switch (_a.label) {
266
- case 0:
267
- if (!templateFile) return [3 /*break*/, 2];
268
- return [4 /*yield*/, createCustomerCommand(templateFile)];
269
- case 1:
270
- customerCommands = _a.sent();
271
- (0, lodash_1.forEach)(customerCommands, function (command) {
272
- system_command.addCommand(command);
273
- });
274
- if ((0, lodash_1.size)(customerCommands) === 1) {
275
- // @ts-ignore
276
- return [2 /*return*/, lodash_1.default.get(lodash_1.default.get(lodash_1.default.first(customerCommands), '_componentPublish'), 'Commands', [])];
277
- }
278
- else {
279
- return [2 /*return*/, lodash_1.default.map(customerCommands, function (item) {
280
- var _a;
281
- return (_a = {},
282
- _a["".concat(item._name, " [options]")] = "Please use [s ".concat(item._name, " -h] obtain the documentation"),
283
- _a);
284
- })];
285
- }
286
- _a.label = 2;
287
- case 2: return [2 /*return*/];
288
- }
289
- });
290
- });
291
- }
292
- exports.registerCustomerCommand = registerCustomerCommand;
293
- function registerUniversalCommand(system_command, templateFile) {
294
- return __awaiter(this, void 0, void 0, function () {
295
- var parsedTemplateObj, customerCommands;
296
- return __generator(this, function (_a) {
297
- switch (_a.label) {
298
- case 0:
299
- if (!templateFile) return [3 /*break*/, 2];
300
- return [4 /*yield*/, getParsedTemplateObj(templateFile)];
301
- case 1:
302
- parsedTemplateObj = _a.sent();
303
- customerCommands = getCustomerCommandInfo(parsedTemplateObj);
304
- if (process.argv[2] && !customerCommands.includes(process.argv[2]) && !['-h', '--help'].includes(process.argv[2])) {
305
- system_command.addCommand(createUniversalCommand(process.argv[2]));
306
- }
307
- _a.label = 2;
308
- case 2: return [2 /*return*/];
309
- }
310
- });
311
- });
312
- }
313
- exports.registerUniversalCommand = registerUniversalCommand;
314
- function registerVerbose(program) {
315
- if (process.argv.includes('--verbose')) {
316
- process.env.VERBOSE = program.verbose;
317
- }
318
- }
319
- exports.registerVerbose = registerVerbose;
320
- function recordCommandHistory(argv) {
321
- var file = storage_1.default.getHistoryFile();
322
- fs.appendFileSync(file, argv.join(',') + os_1.default.EOL);
323
- }
324
- exports.recordCommandHistory = recordCommandHistory;
325
- exports.default = {
326
- registerCommandChecker: registerCommandChecker,
327
- recordCommandHistory: recordCommandHistory,
328
- registerCustomerCommand: registerCustomerCommand,
329
- registerUniversalCommand: registerUniversalCommand,
330
- };
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbW1hbmQtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMENBQW9CO0FBQ3BCLDhDQUF3QjtBQUN4Qix3REFBcUQ7QUFDckQsZ0NBQXlDO0FBQ3pDLGtEQUFrRDtBQUNsRCxnRUFBeUU7QUFDekUsc0RBQWdDO0FBQ2hDLG9EQUE4QjtBQUM5QixtQ0FBaUM7QUFDakMsK0NBQStDO0FBQy9DLGdEQUEwQjtBQUNsQixJQUFBLGFBQWEsR0FBMEQsY0FBSSxjQUE5RCxFQUFFLGFBQWEsR0FBMkMsY0FBSSxjQUEvQyxFQUFPLEVBQUUsR0FBa0MsY0FBSSxJQUF0QyxFQUFFLGNBQWMsR0FBa0IsY0FBSSxlQUF0QixFQUFFLFdBQVcsR0FBSyxjQUFJLFlBQVQsQ0FBVTtBQUU1RSxJQUFBLGFBQWEsR0FBdUIsdUJBQU8sY0FBOUIsRUFBRSxnQkFBZ0IsR0FBSyx1QkFBTyxpQkFBWixDQUFhO0FBRXBELFNBQXNCLGNBQWMsQ0FBQyxZQUFvQjs7Ozs7O29CQUNqRCxLQUFLLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDekMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2hELHFCQUFNLGNBQWMsQ0FBQyxZQUFZLENBQUMsRUFBQTs7b0JBQXpDLElBQUksR0FBRyxTQUFrQztvQkFDdkMsUUFBUSxHQUFLLElBQUksU0FBVCxDQUFVO29CQUMxQixLQUFXLEdBQUcsSUFBSSxRQUFRLEVBQUU7d0JBQ3BCLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENB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
@@ -1,31 +0,0 @@
1
- "use strict";
2
- /** @format */
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.getHistoryFile = exports.getHomeDir = void 0;
8
- var path_1 = __importDefault(require("path"));
9
- var core_1 = __importDefault(require("./core"));
10
- var fs = core_1.default.fse, getRootHome = core_1.default.getRootHome;
11
- function getHomeDir() {
12
- var home = getRootHome();
13
- if (!fs.existsSync(home)) {
14
- fs.mkdirSync(home);
15
- }
16
- return home;
17
- }
18
- exports.getHomeDir = getHomeDir;
19
- function getHistoryFile() {
20
- var file = path_1.default.join(getHomeDir(), 'history');
21
- if (!fs.existsSync(file)) {
22
- fs.createFileSync(file);
23
- }
24
- return file;
25
- }
26
- exports.getHistoryFile = getHistoryFile;
27
- exports.default = {
28
- getHomeDir: getHomeDir,
29
- getHistoryFile: getHistoryFile,
30
- };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7QUFFZCw4Q0FBd0I7QUFDeEIsZ0RBQTBCO0FBQ2xCLElBQUssRUFBRSxHQUFrQixjQUFJLElBQXRCLEVBQUUsV0FBVyxHQUFLLGNBQUksWUFBVCxDQUFVO0FBRXRDLFNBQWdCLFVBQVU7SUFDeEIsSUFBTSxJQUFJLEdBQUcsV0FBVyxFQUFFLENBQUM7SUFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDeEIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQU5ELGdDQU1DO0FBRUQsU0FBZ0IsY0FBYztJQUM1QixJQUFNLElBQUksR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3hCLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDekI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFORCx3Q0FNQztBQUVELGtCQUFlO0lBQ2IsVUFBVSxZQUFBO0lBQ1YsY0FBYyxnQkFBQTtDQUNmLENBQUMifQ==
@@ -1,50 +0,0 @@
1
- "use strict";
2
- /** @format */
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.extractTemplateInfo = exports.isUrlFormat = exports.getProjectNameFromUrl = exports.parse = void 0;
8
- var url_1 = __importDefault(require("url"));
9
- function parse(url) {
10
- return url_1.default.parse(url);
11
- }
12
- exports.parse = parse;
13
- function getProjectNameFromUrl(url) {
14
- var slash = url.lastIndexOf('/');
15
- if (slash && slash >= 0) {
16
- url = url.substr(slash + 1);
17
- }
18
- if (url.endsWith('.git')) {
19
- return url.substr(0, url.length - 4);
20
- }
21
- return url;
22
- }
23
- exports.getProjectNameFromUrl = getProjectNameFromUrl;
24
- function isUrlFormat(url) {
25
- return url.includes(':') || url.includes('/');
26
- }
27
- exports.isUrlFormat = isUrlFormat;
28
- function extractTemplateInfo(url) {
29
- var pathname = url.pathname || '';
30
- var pathArr = pathname.split('/');
31
- var ownerName = pathArr[1];
32
- var repoName = pathArr[3];
33
- return {
34
- host: url.host,
35
- ownerName: ownerName,
36
- repoName: repoName,
37
- branch: '',
38
- hasSubPath: false,
39
- subPath: '',
40
- zipFile: '',
41
- };
42
- }
43
- exports.extractTemplateInfo = extractTemplateInfo;
44
- exports.default = {
45
- extractTemplateInfo: extractTemplateInfo,
46
- getProjectNameFromUrl: getProjectNameFromUrl,
47
- isUrlFormat: isUrlFormat,
48
- parse: parse,
49
- };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91cmwtcGFyc2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxjQUFjOzs7Ozs7QUFFZCw0Q0FBc0I7QUFJdEIsU0FBZ0IsS0FBSyxDQUFDLEdBQVc7SUFDL0IsT0FBTyxhQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFGRCxzQkFFQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEdBQVc7SUFDL0MsSUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztLQUM3QjtJQUVELElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7S0FDdEM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFWRCxzREFVQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFGRCxrQ0FFQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEdBQVk7SUFDOUMsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7SUFDbEMsSUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxJQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0IsSUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE9BQU87UUFDTCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUk7UUFDZCxTQUFTLFdBQUE7UUFDVCxRQUFRLFVBQUE7UUFDUixNQUFNLEVBQUUsRUFBRTtRQUNWLFVBQVUsRUFBRSxLQUFLO1FBQ2pCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsT0FBTyxFQUFFLEVBQUU7S0FDWixDQUFDO0FBQ0osQ0FBQztBQWRELGtEQWNDO0FBRUQsa0JBQWU7SUFDYixtQkFBbUIscUJBQUE7SUFDbkIscUJBQXFCLHVCQUFBO0lBQ3JCLFdBQVcsYUFBQTtJQUNYLEtBQUssT0FBQTtDQUNOLENBQUMifQ==