UNPKG

2.78 kBJavaScriptView Raw
1"use strict";
2exports.__esModule = true;
3var ExtLB = require("..");
4var Inquirer = require("inquirer");
5var path = require("path");
6var _ = require("lodash");
7var Joi = require("joi");
8var Module = (function () {
9 function Module() {
10 this.options = {
11 name: null,
12 camelName: null,
13 snakeName: null,
14 capitalName: null,
15 server: null,
16 client: null
17 };
18 }
19 Module.prototype.getName = function () {
20 var me = this;
21 var curDir = _.last(process.cwd().split(path.sep));
22 return Inquirer.prompt([{
23 type: 'input',
24 name: 'name',
25 message: 'Module Name',
26 "default": me.options.name || curDir.toLowerCase(),
27 validate: function (name) {
28 if (_.isNull(Joi.validate(name, Joi.string().lowercase().required(), { convert: false }).error)) {
29 return true;
30 }
31 else {
32 return 'Module Name must be lowercase';
33 }
34 }
35 }]).then(function (answers) {
36 me.options.name = answers.name;
37 me.options.camelName = _.camelCase(answers.name);
38 me.options.snakeName = _.snakeCase(answers.name);
39 me.options.capitalName = me.options.camelName.charAt(0).toUpperCase() + me.options.camelName.substr(1);
40 });
41 };
42 Module.prototype.getServer = function () {
43 var me = this;
44 return Inquirer.prompt([{
45 type: 'confirm',
46 name: 'server',
47 message: 'Enable server side support?',
48 "default": true
49 }]).then(function (answers) {
50 me.options.server = answers.server;
51 });
52 };
53 Module.prototype.getClient = function () {
54 var me = this;
55 return Inquirer.prompt([{
56 type: 'confirm',
57 name: 'client',
58 message: 'Enable client side support?',
59 "default": true,
60 choices: ExtLB["default"]["default"].versions
61 }]).then(function (answers) {
62 me.options.client = answers.client;
63 });
64 };
65 return Module;
66}());
67exports.command = 'module';
68exports.describe = 'Create a new ExtLoop Module';
69exports.builder = {};
70exports.handler = function (argv) {
71 var app = new Module();
72 app.getName().then(function () {
73 return app.getServer();
74 }).then(function () {
75 return app.getClient();
76 }).then(function () {
77 ExtLB["default"]["default"].createModule(app.options);
78 })["catch"](function (err) {
79 console.error(err);
80 });
81};
82//# sourceMappingURL=module.js.map
\No newline at end of file