const fs = require('fs') var readlineSync = require('readline-sync'); const replaceInFiles = require('replace-in-file'); const argv = require('minimist')(process.argv.slice(2)); // questions const appName = readlineSync.question('What is app name? ', { defaultInput: 'many' }); const appPort = readlineSync.question('Which port use for deployment? ', { defaultInput: '93' }); const isMonorepo = readlineSync.keyInYN('Apply monorepo?'); // context directory const contextDir = `${argv._[0]}/` ?? './'; // create app folder const appsDir = `${contextDir}/apps` const appDir = isMonorepo ? `${contextDir}/apps/${appName}-fe` : `${contextDir}/` if (!fs.existsSync(appDir)){ if (isMonorepo) { fs.mkdirSync(appsDir); } fs.mkdirSync(appDir); fs.mkdirSync(`${appDir}/src`); } // copy folder content try { fs.cpSync('./source/shared/', contextDir, { overwrite: false, recursive: true }) fs.cpSync('./source/app/', appDir, { overwrite: true, recursive: true }) } catch (err) { console.error(err) } // replace in files replaceInFiles.sync({ files: './build/**/*.{ts,tsx}', from: /\/\/.\@ts\-nocheck\n/gm, to: '' }); replaceInFiles.sync({ files: './build/**/*', from: /\$\(appName\)/gm, to: appName }); replaceInFiles.sync({ files: './build/**/*', from: /\$\(AppName\)/gm, to: appName.charAt(0).toUpperCase() + appName.slice(1) }); replaceInFiles.sync({ files: './build/**/*', from: /\$\(appPort\)/gm, to: appPort });