import * as _ from "lodash"; import * as fs from "fs-extra"; import { generateTypeBlock, generateMethodBlock } from "../classBlocks"; export const generateAPIIndexTs = (data: any) => { const { api, apiFolder, templateFolder } = data; fs.readFile( `${templateFolder}/api/class.template/index.ts.template`, "utf8", (err, data) => { if (err) return console.log(err); // loop over array of api classes _.forEach(api, apiClass => { // grab [name] from the item in the loop // grab [description] from the item in the loop const { name, schema } = apiClass; // generate [typeBlock] const typeBlock = generateTypeBlock(schema); // methodBlock const methodBlock = generateMethodBlock(schema, false); // pass in [name], [description], [typeBlock], [methodBlock], [propBlock] to component.template/Compopnent.tsx.template const indexTs = _.template(data)({ name, typeBlock, methodBlock }); // save result to {outFolder}/api/[Name]/index.ts fs.outputFile(`${apiFolder}/${name}/index.ts`, indexTs); }); } ); };