import * as _ from "lodash"; import * as fs from "fs-extra"; export const generateAPIFolders = (data: any) => { const { api, apiFolder, templateFolder } = data; // loop through each _.forEach(api, apiClass => { // create folder in each fs.ensureDir(`${apiFolder}/${apiClass.name}`); }); // generate index.ts fs.readFile( `${templateFolder}/api/index.ts.template`, "utf8", (err, data) => { if (err) return console.error(err); // loop over array of components and generate a line of content for each const templateString = `export { default as <%= name %> } from "./<%= name %>";`; // save results as export_block const export_block = _.join( _.map(api, apiClass => _.template(templateString)({ name: apiClass.name }) ), "\n" ); // merge into the index.ts.template const indexTs = _.template(data)({ export_block }); // create file (put into components folder) fs.outputFile(`${apiFolder}/index.ts`, indexTs); } ); };