liquido
Version:
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
96 lines • 5.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.criarDiretorioAplicacao = criarDiretorioAplicacao;
exports.copiarArquivosDeExemploParaNovoProjeto = copiarArquivosDeExemploParaNovoProjeto;
exports.gerarRepositorioGit = gerarRepositorioGit;
exports.detectarGerenciadorDePacotes = detectarGerenciadorDePacotes;
const child_process_1 = require("child_process");
const fast_glob_1 = require("fast-glob");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
function criarDiretorioAplicacao(nomeAplicacao) {
const caminhoDiretorioProjeto = process.cwd() + path_1.default.sep + nomeAplicacao;
const diretorioJaExiste = fs_1.default.existsSync(nomeAplicacao);
if (!diretorioJaExiste) {
fs_1.default.mkdirSync(nomeAplicacao);
console.log(`Diretório criado: ${caminhoDiretorioProjeto}`);
}
else
console.log(`Diretório já existe: ${caminhoDiretorioProjeto}`);
return caminhoDiretorioProjeto;
}
async function copiarArquivosDeExemploParaNovoProjeto(nomeProjeto, tipoDeProjeto, linguagemDeBackEnd, diretorioProjeto) {
const diretorioExemplos = path_1.default.join(__dirname, `../exemplos/${linguagemDeBackEnd}/` + tipoDeProjeto);
const formatoGlob = (diretorioExemplos + '/**/*.{delegua,pitu,delprops,foles,lmht,md}')
.replace(/\\/gi, '/');
const caminhosArquivos = await (0, fast_glob_1.async)([formatoGlob], {
dot: true,
absolute: false,
stats: false,
});
return Promise.all(caminhosArquivos.map(async (caminhoArquivo) => {
const caminhoArquivoResolvido = path_1.default.resolve(caminhoArquivo);
const novoCaminhoArquivo = caminhoArquivoResolvido.replace(diretorioExemplos, diretorioProjeto);
await fs_1.default.promises.mkdir(path_1.default.dirname(novoCaminhoArquivo), { recursive: true });
if (novoCaminhoArquivo.endsWith('configuracao.delprops')) {
let codigoConfiguracaoDelegua = await fs_1.default.promises.readFile(caminhoArquivoResolvido, 'utf-8');
codigoConfiguracaoDelegua = codigoConfiguracaoDelegua.replace("'Minha aplicação'", `'${nomeProjeto}'`);
return fs_1.default.promises.writeFile(novoCaminhoArquivo, codigoConfiguracaoDelegua);
}
else {
return fs_1.default.promises.copyFile(caminhoArquivoResolvido, novoCaminhoArquivo);
}
}));
}
async function gerarRepositorioGit(inicializarRepositorioGit, diretorioProjeto) {
if (inicializarRepositorioGit) {
(0, child_process_1.execSync)('git init', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git config --global --add safe.directory ' + diretorioProjeto);
const conteudoGitIgnore = 'node_modules/\ndist/\nbuild/\n.env\n.env.local\n.env.development\n.env.production\ncoverage/\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\n.DS_Store\nThumbs.db';
await fs_1.default.promises.writeFile(`${diretorioProjeto}/.gitignore`, conteudoGitIgnore);
(0, child_process_1.execSync)('git config user.email "liquido@designliquido.com.br"', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git config user.name "Liquido"', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git add .', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git commit -m "Versionamento Inicial"', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git config --unset user.email', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('git config --unset user.name', { cwd: diretorioProjeto });
}
}
async function detectarGerenciadorDePacotes(gerenciadorDePacotes, diretorioProjeto) {
const caminhoPackageJson = path_1.default.join(diretorioProjeto, 'package.json');
switch (gerenciadorDePacotes) {
case 'npm': {
(0, child_process_1.execSync)('npm init -y', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('npm install liquido@latest', { cwd: diretorioProjeto });
break;
}
case 'yarn': {
(0, child_process_1.execSync)('yarn init -y', { cwd: diretorioProjeto });
(0, child_process_1.execSync)('yarn add liquido@latest', { cwd: diretorioProjeto });
break;
}
case 'bun': {
if (!fs_1.default.existsSync(caminhoPackageJson)) {
const conteudoPackageJson = {
name: path_1.default.basename(diretorioProjeto),
version: '1.0.0',
private: true,
dependencies: {}
};
await fs_1.default.promises.writeFile(caminhoPackageJson, JSON.stringify(conteudoPackageJson, null, 2) + '\n');
}
(0, child_process_1.execSync)('bun add liquido@latest', { cwd: diretorioProjeto });
break;
}
}
}
/* export function gerarProjetoPorTipoDeProjeto(tipoDeProjeto: string) {
switch (tipoDeProjeto) {
case 'api-rest':
sistemaArquivos.
}
} */
//# sourceMappingURL=index.js.map