mira
Version:
NearForm Accelerator for Cloud Native Serverless AWS
111 lines • 4.09 kB
JavaScript
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = __importDefault(require("chalk"));
const inquirer = __importStar(require("inquirer"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const autocomplete_1 = require("./autocomplete");
const validators = __importStar(require("./validators"));
/**
* The default directory where Mira expects configuration files.
* Note: The path is relative to the root directory so ROOTDIR/config.
*
* @ignore - Excluded from documentation generation.
*/
const configDirPath = 'config';
function createDefaultJSON(config) {
try {
if (!fs_1.default.existsSync(configDirPath)) {
fs_1.default.mkdirSync(configDirPath);
}
const json = JSON.stringify(config, null, 2);
const defaultFilePath = `${configDirPath}${path_1.default.sep}default.json`;
fs_1.default.writeFileSync(`${configDirPath}${path_1.default.sep}default.json`, json);
console.log(chalk_1.default.whiteBright(`Successfully created ${defaultFilePath}`));
}
catch (error) {
console.log(chalk_1.default.red('Could not create configuration directory.'));
process.exit(-1);
}
}
async function configWizard() {
console.log();
console.log(chalk_1.default.white('This utility will walk you through creating a default.json file.'));
console.log();
console.log(chalk_1.default.white('Please consult the Mira documentation for definitive documentation'));
console.log(chalk_1.default.white('on these fields and exactly what they do.\n'));
console.log(chalk_1.default.white('Press ^C at any time to quit.\n'));
const answers = await inquirer
.prompt([
{
name: 'name',
message: 'Application Name?',
validate: (name) => name.length > 0
},
{
name: 'prefix',
message: 'Application Prefix?',
validate: (prefix) => prefix.length > 0
},
{
name: 'account',
message: 'CI/CD Environment AWS Account ID?',
validate: validators.isValidAwsAccountId
},
{
type: 'autocomplete',
name: 'region',
source: autocomplete_1.buildSearchRegions(),
message: 'CI/CD Environment AWS Account Region?'
},
{
name: 'profile',
message: 'CI/CD Environment local AWS CLI configuration profile name?',
validate: validators.isValidAwsCliProfile
}
]);
const { account, region, name, prefix, profile } = answers;
const config = {
app: {
prefix,
name
},
dev: {
target: 'default'
},
accounts: {
default: {
env: {
account,
region
},
profile
}
}
};
createDefaultJSON(config);
}
exports.default = configWizard;
//# sourceMappingURL=make-default-config.js.map
;