import colors from 'colors' import { buildAPIFolder, installNodeModules, buildTypesExport, copyDotEnvFile, copyWappiConfigFile, cleanDistFolder, copyTemplateServerFilesToDistTemp, cleanup, buildServer, } from './helpers' import prismaGenerate from '../PrismaGeneration' import { getConfigFile, log } from '../helpers' import { ConfigFile, IndexState } from '../types' import { currentVersion } from '../Version/currentVersion' export const Build = async (state: IndexState) => { const { installNodeModulesOnRun }: ConfigFile = await getConfigFile() console.info(`\n${colors.green.bold(`\n ⨁ WAPPI ${currentVersion()}\n`)}`) await cleanDistFolder() log('Dist Folder Cleaned', 'grey', state) await copyTemplateServerFilesToDistTemp() log('Wappi Server Copied', 'grey', state) if (installNodeModulesOnRun) { log('Installing all Node Modules', 'grey', state) await installNodeModules() log('Node Modules Installed', 'grey', state) } else if (state.ciPipeline) { log('CI Pipeline - Installing all Node Modules', 'grey', state) await installNodeModules() log('Node Modules Installed', 'grey', state) } else { log('Skipping Node Modules Installation. Change in wappi.json file.', 'grey', state) } await buildAPIFolder(state) log('API Folder Built', 'grey', state) await buildServer() log('Server is Built', 'grey', state) await buildTypesExport(state) log('Types Exported For Frontend Development', 'grey', state) await buildTypesExport(state, true) log('Types Exported For Public Development', 'grey', state) await prismaGenerate(state) log('Prisma Generated', 'grey', state) await copyDotEnvFile() log('env file created', 'grey', state) await copyWappiConfigFile() log('Wappi Config file built', 'grey', state) await cleanup() log('File Cleanup', 'grey', state) } export default Build