Skip to content

Commit

Permalink
#68 cli class => functions
Browse files Browse the repository at this point in the history
  • Loading branch information
jozef-slezak committed May 8, 2021
1 parent a60c26d commit 2a30d43
Showing 1 changed file with 45 additions and 54 deletions.
99 changes: 45 additions & 54 deletions packages/react-lowcode/src/codegen/cli/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,66 +22,57 @@ const args = yargs.options({
'table': { type: 'string', demandOption: true, alias: 't', choices: [TableType.DataTable.toString(), TableType.BasicTable.toString()] },
}).argv;

class LocalCodegenCli{
async generateList(){
const sourceFile = createAst('')
const myClassFile = parseGraphqlTypes(graphqlGenTs1)
const testEntity = sourceFileEntity(myClassFile)
async function generateList(){
const sourceFile = createAst('')
const myClassFile = parseGraphqlTypes(graphqlGenTs1)
const testEntity = sourceFileEntity(myClassFile)

let uif : UiFramework = (<any>UiFramework)[args['ui']];
let formatter : Formatter = (<any>Formatter)[args['formatter']];
let tableType : TableType = (<any>TableType)[args['table']];

let generationContext = {uiFramework: uif, formatter: formatter, index: {tableType: tableType, height: "400px"}};
let generator = new AppGenerator(generationContext, testEntity!!);

const page = generator.generateListPage()

const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed })

let sourceCode = printer.printList(ts.ListFormat.MultiLine, factory.createNodeArray([...page.imports, page.functionDeclaration]), sourceFile)

let uif : UiFramework = (<any>UiFramework)[args['ui']];
let formatter : Formatter = (<any>Formatter)[args['formatter']];
let tableType : TableType = (<any>TableType)[args['table']];

let generationContext = {uiFramework: uif, formatter: formatter, index: {tableType: tableType, height: "400px"}};
let generator = new AppGenerator(generationContext, testEntity!!);

this.saveFile(sourceCode, args['basePath'], args['fileName'])
}

async generateDetail(){
const sourceFile = createAst('')
const myClassFile = parseGraphqlTypes(graphqlGenTs1)
const testEntity = sourceFileEntity(myClassFile)
const page = generator.generateListPage()

const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed })
let sourceCode = printer.printList(ts.ListFormat.MultiLine, factory.createNodeArray([...page.imports, page.functionDeclaration]), sourceFile)
saveFile(sourceCode, args['basePath'], args['fileName'])
}

let uif : UiFramework = (<any>UiFramework)[args['ui']];
let formatter : Formatter = (<any>Formatter)[args['formatter']];
let tableType : TableType = (<any>TableType)[args['table']];

let generationContext = {uiFramework: uif, formatter: formatter, index: {tableType: tableType, height: "400px"}};
let generator = new AppGenerator(generationContext, testEntity!!);

const page = generator.generateDetailPage()

const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed })

let sourceCode = printer.printList(ts.ListFormat.MultiLine, factory.createNodeArray([...page.imports, page.functionDeclaration]), sourceFile)

this.saveFile(sourceCode, args['basePath'], args['fileName'])
}
async function generateDetail(){
const sourceFile = createAst('')
const myClassFile = parseGraphqlTypes(graphqlGenTs1)
const testEntity = sourceFileEntity(myClassFile)

async saveFile(sourceCode: string, basePath:string, fileName: string){
let filePath = basePath + fileName
let uif : UiFramework = (<any>UiFramework)[args['ui']];
let formatter : Formatter = (<any>Formatter)[args['formatter']];
let tableType : TableType = (<any>TableType)[args['table']];

let generationContext = {uiFramework: uif, formatter: formatter, index: {tableType: tableType, height: "400px"}};
let generator = new AppGenerator(generationContext, testEntity!!);

await fs.writeFile(filePath, sourceCode, function(err) {
if (err) {
return console.error(err);
}
console.log("File created!");
});
}
const page = generator.generateDetailPage()

const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed })
let sourceCode = printer.printList(ts.ListFormat.MultiLine, factory.createNodeArray([...page.imports, page.functionDeclaration]), sourceFile)
saveFile(sourceCode, args['basePath'], args['fileName'])
}

const cli = new LocalCodegenCli()
async function saveFile(sourceCode: string, basePath:string, fileName: string){
let filePath = basePath + fileName

await fs.writeFile(filePath, sourceCode, function(err) {
if (err) {
return console.error(err);
}
console.log("File created!");
});
}

if(args['component'] === LIST_COMPONENT)
cli.generateList()
else if(args['component'] === DETAIL_COMPONENT){
cli.generateDetail()
if (args.component === LIST_COMPONENT)
generateList()
else if(args.component === DETAIL_COMPONENT){
generateDetail()
}

0 comments on commit 2a30d43

Please sign in to comment.