From ef32f605bb7e5f5d3dd3112ce1c0c1a1d59b067c Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Mon, 18 Nov 2019 16:17:45 +0300 Subject: [PATCH] feat(client-generator): add api-defination type refactor module selection prompt --- npm/packs/client-generator/src/angular.ts | 6 +++- npm/packs/client-generator/src/cli.ts | 30 ++++++++++++++++--- .../src/types/api-defination.ts | 9 ++++++ 3 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 npm/packs/client-generator/src/types/api-defination.ts diff --git a/npm/packs/client-generator/src/angular.ts b/npm/packs/client-generator/src/angular.ts index 908ba8417a..7d90029f40 100644 --- a/npm/packs/client-generator/src/angular.ts +++ b/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(() =>) +} diff --git a/npm/packs/client-generator/src/cli.ts b/npm/packs/client-generator/src/cli.ts index ce4fbcab07..d88f16f641 100644 --- a/npm/packs/client-generator/src/cli.ts +++ b/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 => { + 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); + } +} diff --git a/npm/packs/client-generator/src/types/api-defination.ts b/npm/packs/client-generator/src/types/api-defination.ts new file mode 100644 index 0000000000..7c1a38a11e --- /dev/null +++ b/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; + } +}