Skip to content

Commit

Permalink
finalizacao das atividades #3 e #4
Browse files Browse the repository at this point in the history
  • Loading branch information
filipeas committed Apr 8, 2022
1 parent 4f7bb87 commit f77e131
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 6 deletions.
11 changes: 8 additions & 3 deletions bin/init.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,24 @@ function initStructure() {

// caminhos
const destinationRaiz = path.join(__dirname, "..", "..");// "..", ".."
const destinationTypes = path.join(__dirname, "..", "..", "@types");// "..", ".."
const destinationTypesExpress = path.join(__dirname, "..", "..", "@types", "express");//"..", ".."
const destinationInfraSrc = path.join(__dirname, "..", "..", "src");
const destinationTypes = path.join(__dirname, "..", "..", "src", "@types");// "..", ".."
const destinationTypesExpress = path.join(__dirname, "..", "..", "src", "@types", "express");//"..", ".."
const destinationInfraHttp = path.join(__dirname, "..", "..", "src", "http");
const destinationInfraHttpContainer = path.join(__dirname, "..", "..", "src", "http", "container");
const destinationInfraHttpErrors = path.join(__dirname, "..", "..", "src", "http", "errors");
const destinationInfraHttpMiddlewares = path.join(__dirname, "..", "..", "src", "http", "middlewares");
const destinationInfraHttpRoutes = path.join(__dirname, "..", "..", "src", "http", "routes");
const destinationInfraHttpValidation = path.join(__dirname, "..", "..", "src", "http", "validations");
const destinationInfraTypeOrm = path.join(__dirname, "..", "..", "src", "typeorm");
const destinationInfraTypeOrmMigrations = path.join(__dirname, "..", "..", "src", "typeorm", "migrations");

// criar .env.example
createRoot.createFile(destinationRaiz);

// criando diretorio src
if (!fs.existsSync(destinationInfraSrc)) fs.mkdirSync(destinationInfraSrc);

// cria diretorios para @types
if (!fs.existsSync(destinationTypes)) fs.mkdirSync(destinationTypes);
if (!fs.existsSync(destinationTypesExpress)) fs.mkdirSync(destinationTypesExpress);
Expand All @@ -33,17 +37,18 @@ function initStructure() {
createTypes.createFile(destinationTypesExpress);

// cria diretorios para infra
if (!fs.existsSync(destinationInfraSrc)) fs.mkdirSync(destinationInfraSrc);
if (!fs.existsSync(destinationInfraHttp)) fs.mkdirSync(destinationInfraHttp);
if (!fs.existsSync(destinationInfraHttpContainer)) fs.mkdirSync(destinationInfraHttpContainer);
if (!fs.existsSync(destinationInfraHttpErrors)) fs.mkdirSync(destinationInfraHttpErrors);
if (!fs.existsSync(destinationInfraHttpMiddlewares)) fs.mkdirSync(destinationInfraHttpMiddlewares);
if (!fs.existsSync(destinationInfraHttpRoutes)) fs.mkdirSync(destinationInfraHttpRoutes);
if (!fs.existsSync(destinationInfraHttpValidation)) fs.mkdirSync(destinationInfraHttpValidation);
if (!fs.existsSync(destinationInfraTypeOrm)) fs.mkdirSync(destinationInfraTypeOrm);
if (!fs.existsSync(destinationInfraTypeOrmMigrations)) fs.mkdirSync(destinationInfraTypeOrmMigrations);

// cria arquivos do diretorio infra
createInfra.createFile(
destinationInfraHttp,
destinationInfraHttpContainer,
destinationInfraHttpErrors,
destinationInfraHttpMiddlewares,
Expand Down
103 changes: 100 additions & 3 deletions bin/init/createInfra.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const fs = require("fs");
const path = require("path");

function createFile(
destinationInfraHttp,
destinationInfraHttpContainer,
destinationInfraHttpErrors,
destinationInfraHttpMiddlewares,
Expand Down Expand Up @@ -289,7 +290,103 @@ function createFile(
console.log("Arquivo http/routes/user.routes.ts criado com sucesso.");
});

// validations
// server.ts
// typeorm
// cria arquivo http/validations/CreateUserSchema.ts
fs.appendFile(
path.join(destinationInfraHttpValidation, "CreateUserSchema.ts"),
`
import { object, string } from 'yup';
export const CreateUserSchema = object({
name: string().min(1).required(),
email: string().min(1).required(),
password: string().min(1).required(),
});
`, function (err) {
if (err) throw err;
console.log("Arquivo http/validations/CreateUserSchema.ts criado com sucesso.");
});

// cria arquivo http/validations/UpdateUserSchema.ts
fs.appendFile(
path.join(destinationInfraHttpValidation, "UpdateUserSchema.ts"),
`
import { object, string } from 'yup';
export const UpdateUserSchema = object({
name: string().min(1).required(),
});
`, function (err) {
if (err) throw err;
console.log("Arquivo http/validations/UpdateUserSchema.ts criado com sucesso.");
});

// cria arquivo http/validations/UpdatePasswordUserSchema.ts
fs.appendFile(
path.join(destinationInfraHttpValidation, "UpdatePasswordUserSchema.ts"),
`
import { object, string } from 'yup';
export const UpdatePasswordUserSchema = object({
c_password: string().min(1).required(),
new_password: string().min(1).required(),
});
`, function (err) {
if (err) throw err;
console.log("Arquivo http/validations/UpdatePasswordUserSchema.ts criado com sucesso.");
});

// cria arquivo http/server.ts
fs.appendFile(
path.join(destinationInfraHttp, "server.ts"),
`
import 'dotenv/config';
import 'reflect-metadata';
import 'express-async-errors';
import express from 'express';
import { handleException } from './middlewares/handleException';
import './container';
import createConnection from '../typeorm';
import { routes } from './routes';
createConnection();
const app = express();
app.use(express.json());
app.use(routes);
app.use(handleException);
app.listen(process.env.APP_PORT, () => {
console.log(\`Server on ${process.env.APP_URL}\`);
});
`, function (err) {
if (err) throw err;
console.log("Arquivo http/server.ts criado com sucesso.");
});

// cria arquivo http/typeorm/index.ts
fs.appendFile(
path.join(destinationInfraTypeOrm, "index.ts"),
`
import 'dotenv/config';
import { Connection, createConnection, getConnectionOptions } from 'typeorm';
export default async (host = process.env.DB_HOST): Promise<Connection> => {
const defaultOptions = await getConnectionOptions();
return createConnection(
Object.assign(defaultOptions, {
host,
}),
);
};
`, function (err) {
if (err) throw err;
console.log("Arquivo http/typeorm/index.ts criado com sucesso.");
});
}

0 comments on commit f77e131

Please sign in to comment.