UNPKG

8.09 kBJavaScriptView Raw
1"use strict";
2var _this = this;
3Object.defineProperty(exports, "__esModule", { value: true });
4var tslib_1 = require("tslib");
5var path_1 = tslib_1.__importDefault(require("path"));
6var npm_1 = require("../../lib/npm");
7exports.default = (function (api) {
8 api
9 .command('plugin [name]')
10 .option('-I, --no-install', 'skip npm install')
11 .option('-L, --local [local]', 'create a local plugin and put it in plugins folder')
12 .option('-R, --registry [registry]', 'npm registry')
13 .action(function (name, options) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
14 var answers, cwd, actions, registry;
15 return tslib_1.__generator(this, function (_a) {
16 switch (_a.label) {
17 case 0: return [4 /*yield*/, api.prompt([
18 {
19 name: 'name',
20 message: 'Your plugin name?',
21 validate: function (pluginName) {
22 if (!pluginName) {
23 return 'plugin name are required';
24 }
25 return true;
26 },
27 default: name,
28 },
29 {
30 name: 'description',
31 message: 'Descriptions for plugin?',
32 },
33 {
34 name: 'typescript',
35 type: 'confirm',
36 default: true,
37 message: 'Do you want write your plugin with TypeScript?',
38 },
39 ])];
40 case 1:
41 answers = _a.sent();
42 cwd = options.local
43 ? path_1.default.join(api.conf.pluginDir, api.getPrettyName(answers.name))
44 : path_1.default.join(process.cwd(), api.getPrettyName(answers.name));
45 actions = [
46 {
47 templateFile: './templates/readme.hbs',
48 path: 'README.md',
49 },
50 {
51 templateFile: './templates/package.hbs',
52 path: 'package.json',
53 },
54 ];
55 // typescript only
56 if (answers.typescript) {
57 actions.push({
58 templateFile: './templates/index_ts.hbs',
59 path: 'index.ts',
60 format: {
61 parser: 'typescript',
62 },
63 });
64 actions.push({
65 templateFile: './templates/tsconfig.hbs',
66 path: 'tsconfig.json',
67 format: {
68 parser: 'json',
69 },
70 });
71 }
72 else {
73 actions.push({
74 templateFile: './templates/index_js.hbs',
75 path: 'index.js',
76 format: true,
77 });
78 }
79 // local plugins only
80 if (!options.local) {
81 actions.push({
82 templateFile: './templates/prettierrc.hbs',
83 path: '.prettierrc',
84 });
85 actions.push({
86 templateFile: './templates/gitignore.hbs',
87 path: '.gitignore',
88 });
89 actions.push({
90 templateFile: './templates/npmignore.hbs',
91 path: '.npmignore',
92 });
93 }
94 return [4 /*yield*/, api.runActions(actions.map(function (a) {
95 a.path = path_1.default.join(cwd, a.path);
96 return a;
97 }), answers)];
98 case 2:
99 _a.sent();
100 if (!options.install) return [3 /*break*/, 4];
101 registry = options.registry
102 ? ' --registry=' + options.registry
103 : '';
104 return [4 /*yield*/, npm_1.install(cwd, registry)];
105 case 3:
106 _a.sent();
107 _a.label = 4;
108 case 4: return [2 /*return*/];
109 }
110 });
111 }); });
112});
113//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUJBb0hBOzs7QUFuSEEsc0RBQXVCO0FBQ3ZCLHFDQUF1RDtBQVd2RCxtQkFBZSxVQUFDLEdBQVc7SUFDMUIsR0FBRztTQUNELE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDeEIsTUFBTSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDO1NBQzlDLE1BQU0sQ0FDTixxQkFBcUIsRUFDckIsb0RBQW9ELENBQ3BEO1NBQ0EsTUFBTSxDQUFDLDJCQUEyQixFQUFFLGNBQWMsQ0FBQztTQUNuRCxNQUFNLENBQUMsVUFBTyxJQUFZLEVBQUUsT0FBc0I7Ozs7d0JBQ2xDLHFCQUFNLEdBQUcsQ0FBQyxNQUFNLENBQWdCO3dCQUMvQzs0QkFDQyxJQUFJLEVBQUUsTUFBTTs0QkFDWixPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixRQUFRLEVBQUUsVUFBQSxVQUFVO2dDQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFO29DQUNoQixPQUFPLDBCQUEwQixDQUFBO2lDQUNqQztnQ0FDRCxPQUFPLElBQUksQ0FBQTs0QkFDWixDQUFDOzRCQUNELE9BQU8sRUFBRSxJQUFJO3lCQUNiO3dCQUNEOzRCQUNDLElBQUksRUFBRSxhQUFhOzRCQUNuQixPQUFPLEVBQUUsMEJBQTBCO3lCQUNuQzt3QkFDRDs0QkFDQyxJQUFJLEVBQUUsWUFBWTs0QkFDbEIsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsT0FBTyxFQUFFLElBQUk7NEJBQ2IsT0FBTyxFQUFFLGdEQUFnRDt5QkFDekQ7cUJBQ0QsQ0FBQyxFQUFBOztvQkF0QkksT0FBTyxHQUFHLFNBc0JkO29CQUVJLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSzt3QkFDeEIsQ0FBQyxDQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2hFLENBQUMsQ0FBQyxjQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO29CQUV0RCxPQUFPLEdBQWE7d0JBQ3pCOzRCQUNDLFlBQVksRUFBRSx3QkFBd0I7NEJBQ3RDLElBQUksRUFBRSxXQUFXO3lCQUNqQjt3QkFDRDs0QkFDQyxZQUFZLEVBQUUseUJBQXlCOzRCQUN2QyxJQUFJLEVBQUUsY0FBYzt5QkFDcEI7cUJBQ0QsQ0FBQTtvQkFDRCxrQkFBa0I7b0JBQ2xCLElBQUksT0FBTyxDQUFDLFVBQVUsRUFBRTt3QkFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQzs0QkFDWixZQUFZLEVBQUUsMEJBQTBCOzRCQUN4QyxJQUFJLEVBQUUsVUFBVTs0QkFDaEIsTUFBTSxFQUFFO2dDQUNQLE1BQU0sRUFBRSxZQUFZOzZCQUNwQjt5QkFDRCxDQUFDLENBQUE7d0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQzs0QkFDWixZQUFZLEVBQUUsMEJBQTBCOzRCQUN4QyxJQUFJLEVBQUUsZUFBZTs0QkFDckIsTUFBTSxFQUFFO2dDQUNQLE1BQU0sRUFBRSxNQUFNOzZCQUNkO3lCQUNELENBQUMsQ0FBQTtxQkFDRjt5QkFBTTt3QkFDTixPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUNaLFlBQVksRUFBRSwwQkFBMEI7NEJBQ3hDLElBQUksRUFBRSxVQUFVOzRCQUNoQixNQUFNLEVBQUUsSUFBSTt5QkFDWixDQUFDLENBQUE7cUJBQ0Y7b0JBQ0QscUJBQXFCO29CQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTt3QkFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQzs0QkFDWixZQUFZLEVBQUUsNEJBQTRCOzRCQUMxQyxJQUFJLEVBQUUsYUFBYTt5QkFDbkIsQ0FBQyxDQUFBO3dCQUNGLE9BQU8sQ0FBQyxJQUFJLENBQUM7NEJBQ1osWUFBWSxFQUFFLDJCQUEyQjs0QkFDekMsSUFBSSxFQUFFLFlBQVk7eUJBQ2xCLENBQUMsQ0FBQTt3QkFDRixPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUNaLFlBQVksRUFBRSwyQkFBMkI7NEJBQ3pDLElBQUksRUFBRSxZQUFZO3lCQUNsQixDQUFDLENBQUE7cUJBQ0Y7b0JBRUQscUJBQU0sR0FBRyxDQUFDLFVBQVUsQ0FDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUM7NEJBQ1osQ0FBQyxDQUFDLElBQUksR0FBRyxjQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7NEJBQy9CLE9BQU8sQ0FBQyxDQUFBO3dCQUNULENBQUMsQ0FBQyxFQUNGLE9BQU8sQ0FDUCxFQUFBOztvQkFORCxTQU1DLENBQUE7eUJBRUcsT0FBTyxDQUFDLE9BQU8sRUFBZix3QkFBZTtvQkFDWixRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVE7d0JBQ2hDLENBQUMsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLFFBQVE7d0JBQ25DLENBQUMsQ0FBQyxFQUFFLENBQUE7b0JBQ0wscUJBQU0sYUFBTyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsRUFBQTs7b0JBQTVCLFNBQTRCLENBQUE7Ozs7O1NBRTdCLENBQUMsQ0FBQTtBQUNKLENBQUMsRUFBQSJ9
\No newline at end of file