Browse Source

feat(client-generator): configure the prompts

pull/2210/head
mehmet-erim 7 years ago
parent
commit
373094ee2f
  1. 59
      npm/packs/client-generator/lib/index.js
  2. 4000
      npm/packs/client-generator/lib/utils/axios.js
  3. 1
      npm/packs/client-generator/lib/utils/prompt.d.ts
  4. 52
      npm/packs/client-generator/lib/utils/prompt.js
  5. 1
      npm/packs/client-generator/package.json
  6. 16
      npm/packs/client-generator/src/cli.ts
  7. 21
      npm/packs/client-generator/src/index.ts
  8. 13
      npm/packs/client-generator/src/utils/prompt.ts
  9. 15
      npm/packs/client-generator/yarn.lock

59
npm/packs/client-generator/lib/index.js

@ -1,20 +1,77 @@
#!/usr/bin/env node
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
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;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var chalk_1 = __importDefault(require("chalk"));
var commander_1 = __importDefault(require("commander"));
var ora_1 = __importDefault(require("ora"));
var axios_1 = require("./utils/axios");
var prompt_1 = require("./utils/prompt");
var clear = require('clear');
var figlet = require('figlet');
clear();
console.log(chalk_1.default.red(figlet.textSync('ABP', { horizontalLayout: 'full' })));
commander_1.default
.version('0.0.1')
.description("ABP Client Generator")
.description('ABP Client Generator')
.option('-u, --ui', 'UI option (Angular)')
.parse(process.argv);
if (!process.argv.slice(2).length) {
commander_1.default.outputHelp();
process.exit(1);
}
var loading = ora_1.default('Waiting for API response... \n');
loading.start();
(function () {
return __awaiter(this, void 0, void 0, function () {
var data;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, axios_1.axiosInstance.get('a')];
case 1:
data = _a.sent();
loading.stop();
prompt_1.selectingModule(Object.keys(data));
return [2 /*return*/];
}
});
});
})();

4000
npm/packs/client-generator/lib/utils/axios.js

File diff suppressed because it is too large

1
npm/packs/client-generator/lib/utils/prompt.d.ts

@ -0,0 +1 @@
export declare const selectingModule: (modules: string[]) => Promise<void>;

52
npm/packs/client-generator/lib/utils/prompt.js

@ -0,0 +1,52 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
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;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var inquirer_1 = __importDefault(require("inquirer"));
exports.selectingModule = function (modules) { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, inquirer_1.default.prompt(modules)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); };

1
npm/packs/client-generator/package.json

@ -28,6 +28,7 @@
},
"devDependencies": {
"@types/node": "^12.12.8",
"@types/inquirer": "^6.5.0",
"nodemon": "^1.19.4",
"ts-node": "^8.5.2",
"typescript": "^3.7.2"

16
npm/packs/client-generator/src/cli.ts

@ -0,0 +1,16 @@
import { uiSelection, moduleSelection } from './utils/prompt';
import { axiosInstance } from './utils/axios';
import ora = require('ora');
export const cli = async (program: any) => {
if (program.ui !== 'angular') {
program.ui = ((await uiSelection(['Angular'])) as string).toLowerCase();
}
const loading = ora('Waiting for the API response... \n');
loading.start();
const data = (await axiosInstance.get('a')) as any;
loading.stop();
const modules = await moduleSelection(Object.keys(data.modules));
console.log(modules);
};

21
npm/packs/client-generator/src/index.ts

@ -1,8 +1,10 @@
#!/usr/bin/env node
import chalk from 'chalk';
import commander from 'commander';
import program from 'commander';
import ora from 'ora';
import { axiosInstance } from './utils/axios';
import { moduleSelection, uiSelection } from './utils/prompt';
import { cli } from './cli';
const clear = require('clear');
const figlet = require('figlet');
@ -10,20 +12,17 @@ clear();
console.log(chalk.red(figlet.textSync('ABP', { horizontalLayout: 'full' })));
commander
program
.version('0.0.1')
.description('ABP Client Generator')
.option('-u, --ui', 'UI option (Angular)')
.option('-u, --ui <type>', 'UI option (Angular)')
.parse(process.argv);
if (!process.argv.slice(2).length) {
commander.outputHelp();
if (!process.argv.slice(2).length || !program.ui || typeof program.ui !== 'string') {
program.outputHelp();
process.exit(1);
}
const loading = ora('Waiting for API response... \n');
loading.start();
(async function() {
const data = await axiosInstance.get('a');
loading.stop();
})();
program.ui = program.ui.toLowerCase();
cli(program);

13
npm/packs/client-generator/src/utils/prompt.ts

@ -0,0 +1,13 @@
import inquirer from 'inquirer';
export const uiSelection = async (uiArray: string[]) => {
return inquirer
.prompt({ type: 'list', name: 'Please select an UI', choices: uiArray })
.then(res => res['Please select an UI']);
};
export const moduleSelection = async (modules: string[]) => {
return inquirer
.prompt({ type: 'checkbox', name: 'Please select module(s)', choices: modules })
.then(res => res['Please select module(s)']);
};

15
npm/packs/client-generator/yarn.lock

@ -6,10 +6,23 @@
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
"@types/node@^12.12.8":
"@types/inquirer@^6.5.0":
version "6.5.0"
resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be"
dependencies:
"@types/through" "*"
rxjs "^6.4.0"
"@types/node@*", "@types/node@^12.12.8":
version "12.12.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.8.tgz#dab418655af39ce2fa99286a0bed21ef8072ac9d"
"@types/through@*":
version "0.0.29"
resolved "https://registry.yarnpkg.com/@types/through/-/through-0.0.29.tgz#72943aac922e179339c651fa34a4428a4d722f93"
dependencies:
"@types/node" "*"
abbrev@1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"

Loading…
Cancel
Save