1 | ;
|
2 | var _this = this;
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | var tslib_1 = require("tslib");
|
5 | var path_1 = tslib_1.__importDefault(require("path"));
|
6 | var npm_1 = require("../../lib/npm");
|
7 | exports.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 |