Browse Source

feat(client-generator): add api-defination type

refactor module selection prompt
pull/2210/head
mehmet-erim 7 years ago
parent
commit
ef32f605bb
  1. 6
      npm/packs/client-generator/src/angular.ts
  2. 30
      npm/packs/client-generator/src/cli.ts
  3. 9
      npm/packs/client-generator/src/types/api-defination.ts

6
npm/packs/client-generator/src/angular.ts

@ -1 +1,5 @@
#!/usr/bin/env node
import { APIDefination } from './types/api-defination';
export async function angular(data: APIDefination.Response, selectedModules: string[]) {
selectedModules.forEach(() =>)
}

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

@ -1,8 +1,10 @@
import { uiSelection, moduleSelection } from './utils/prompt';
import { axiosInstance } from './utils/axios';
import ora = require('ora');
import { angular } from './angular';
import chalk from 'chalk';
export const cli = async (program: any) => {
export async function cli(program: any) {
if (program.ui !== 'angular') {
program.ui = ((await uiSelection(['Angular'])) as string).toLowerCase();
}
@ -11,6 +13,26 @@ export const cli = async (program: any) => {
loading.start();
const data = (await axiosInstance.get('a')) as any;
loading.stop();
const modules = await moduleSelection(Object.keys(data.modules));
console.log(modules);
};
const selection = async (modules: string[]): Promise<string[]> => {
const selectedModules = (await moduleSelection(modules)) as string[];
if (!selectedModules.length) {
console.log(chalk.red('Please select module(s)'));
return await selection(modules);
}
return selectedModules;
};
const modules = await selection(Object.keys(data.modules));
switch (program.ui) {
case 'angular':
await angular(data, modules);
break;
default:
process.exit(1);
}
}

9
npm/packs/client-generator/src/types/api-defination.ts

@ -0,0 +1,9 @@
export namespace APIDefination {
export interface Response {
modules: Modules;
}
export interface Modules {
[key: string]: any;
}
}
Loading…
Cancel
Save