Sobre este projeto | Tecnologias | Recursoso | Docs | License
Template para criação de projetos em nodejs usando typescript e testes automatizados.
- Node - Nodejs
- typescript - Super Javascript
- Jest - UnitTest
- Configuração para Typescript
- Configuração para Either
git clone https://github.com/Colgate13/Survello
cd Survello
npm ci i
npm run test
src/modules -> Cada modulo do sistema. toda a funcionalidade especifica dess Ex: src/modules/users
src/modules/users/Domain -> Entitys do especificamente do user Ex: src/modules/users/Domain
src/modules/users/repositories -> Casos de uso do Users Ex: src/modules/users/repositories
src/modules/users/mappers -> Casos de uso do Users Ex: src/modules/users/mappers
src/modules/users/useCases -> Casos de uso do Users Ex: src/modules/users/useCases
src/shared/ -> Interfaces, funcoes ou tudo que todo o projeto precise utilzar.
src/infra/ -> Classes que manipulam servidores http, banco. exemplo aqui ficaria as classes do express
src/core/
Link para estudar: https://dev.to/attila_vecerek/the-either-monad-3ooc
import { Either, left, right } from '../../../core/logic/Either';
export class InvalidUser extends Error {
constructor() {
super(`User invalid`);
this.name = 'InvalidUser';
}
}
interface IUser {
name: string;
email: string;
}
createUser = (userProps): Either<InvalidUser | Error, IUser> => {
if(!userProps) return left(new InvalidUser())
return right({
name: userProps.name;
email: userProps.email;
});
};
const user = createUser(userProps);
if(user.isLeft()) // isLeft => com erros
if(user.isRight()) // isRight => Sem nenhum error
MIT LICENSE