@nswhp/golden-path
Version:
Generate all the recommended golden paths
41 lines (40 loc) • 3.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.awsCdkTemplate = void 0;
const child_process_1 = require("child_process");
const files_1 = require("../../models/files");
const logger_util_1 = require("../../utils/logger.util");
const default_template_1 = require("../default/default.template");
const files_2 = require("./files");
async function awsCdkTemplate(projectName, tagging, environments) {
try {
(0, logger_util_1.showInfo)(`Begging to configure your project`);
(0, logger_util_1.showInfo)(`---------------------------------`);
await (0, default_template_1.defaultTemplate)(files_1.FileName.PACKAGE_JSON, (0, files_2.getAwsCdkPackageJson)(projectName));
await (0, default_template_1.defaultTemplate)(files_1.FileName.README, (0, files_2.getAwsCdkReadme)(projectName, tagging));
await (0, default_template_1.defaultTemplate)(files_1.FileName.TS_CONFIG, (0, files_2.getAwsCdkTsconfig)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.JEST_CONFIG, (0, files_2.getAwsCdkJestConfig)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.PRETTIERRC, (0, files_2.getAwsCdkPrettier)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.GIT_IGNORE, (0, files_2.getAwsCdkGitIgnore)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.ESLINTRC, (0, files_2.getAwsCdkEslintConfig)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.ESLINT_IGNORE, (0, files_2.getAwsCdkEslintIgnore)());
await (0, default_template_1.defaultTemplate)(files_1.FileName.TEST_DEMO, (0, files_2.getAwsCdkExampleTest)(), '/test');
await (0, default_template_1.defaultTemplate)(files_1.FileName.TAGGING_TS, (0, files_2.getAwsCdkTaggingTs)(), '/lib');
await (0, default_template_1.defaultTemplate)(files_1.FileName.CONSTANTS_TS, (0, files_2.getAwsCdkConstantsTs)(environments), '/lib');
await (0, default_template_1.defaultTemplate)(files_1.FileName.CDK_JSON, (0, files_2.getAwsCdkConfig)(projectName));
await (0, default_template_1.defaultTemplate)(files_1.FileName.CONFIG_FACTORY, (0, files_2.getAwsCdkConfigFactoryTs)(environments.find(env => env.env.toLocaleLowerCase() === 'np'), environments.find(env => env.env.toLocaleLowerCase() === 'qa'), environments.find(env => env.env.toLocaleLowerCase() === 'pd'), tagging, projectName), '/lib/config');
await (0, default_template_1.defaultTemplate)(files_1.FileName.INFRASTRUCTURE, (0, files_2.getAwsCdkInfrastructureTs)(), '/lib/config');
await (0, default_template_1.defaultTemplate)(`${projectName}.ts`, (0, files_2.getAwsCdkBinCdkProjectTs)(environments.find(env => env.env.toLocaleLowerCase() === 'np'), environments.find(env => env.env.toLocaleLowerCase() === 'qa'), environments.find(env => env.env.toLocaleLowerCase() === 'pd'), projectName), '/bin');
await (0, default_template_1.defaultTemplate)(files_1.FileName.PIPELINE, (0, files_2.getAwsCdkPipeline)(projectName), '/.pipeline');
for (const environment of environments) {
await (0, default_template_1.defaultTemplate)(`${environment.env.toLocaleLowerCase()}-stack.ts`, (0, files_2.getAwsCdkStackTs)(environment.env), '/lib');
}
(0, logger_util_1.showInfo)('Installing packages');
(0, child_process_1.execSync)('npm i', { stdio: 'inherit' });
}
catch (e) {
(0, logger_util_1.showError)(e);
}
return;
}
exports.awsCdkTemplate = awsCdkTemplate;