@leonardowlopes/bx-cli
Version:
A CLI tool used to configure projects for the Buildbox company.
67 lines • 2.68 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.configurationService = void 0;
const inquirer_1 = __importDefault(require("inquirer"));
const functions_1 = require("../enum/functions");
const repository_1 = require("../enum/repository");
const setup_repository_file_1 = require("../functions/setup-repository-file");
const commands_1 = require("../utils/commands");
const http_1 = require("../utils/http");
const mappers_1 = require("../utils/mappers");
async function configurationService() {
const { type, configFiles } = await inquirer_1.default.prompt([
{
type: 'list',
name: 'type',
message: 'What linting tool do you want to use?',
choices: [
{
name: 'BiomeJS',
value: repository_1.ERepositoryFileName.BIOME,
},
{
name: 'ESLint/Prettier',
value: [
repository_1.ERepositoryFileName.ESLINT,
repository_1.ERepositoryFileName.PRETTIER,
],
},
],
},
{
type: 'checkbox',
name: 'configFiles',
message: 'Select the configuration files you want to setup',
choices: [
{
name: '.editorconfig',
value: repository_1.ERepositoryFileName.EDITOR_CONFIG,
checked: true,
},
{
name: '.nvmrc',
value: functions_1.EFunction.GENERATE_NVMRC,
checked: true,
},
],
},
]);
console.log('');
const filesRepository = await (0, http_1.fetchFilesRepository)();
const repository = configFiles.filter((value) => Object.values(repository_1.ERepositoryFileName).includes(value));
const functions = configFiles.filter((value) => Object.values(functions_1.EFunction).includes(value));
for (const func of functions) {
await mappers_1.FUNCTIONS_MAPPER[func]();
}
const fileNames = [repository, type].flatMap((item) => Array.isArray(item) ? item : [item]);
for (const fileName of fileNames) {
await (0, setup_repository_file_1.setupRepositoryFile)(fileName, filesRepository);
}
console.log('');
await commands_1.command.install();
}
exports.configurationService = configurationService;
//# sourceMappingURL=configuration.js.map