├── .env.example ├── .gitignore ├── jest.config.js ├── package.json ├── src ├── lib │ ├── Shared │ │ └── infrastructure │ │ │ ├── ServiceContainer.ts │ │ │ └── env.ts │ └── User │ │ ├── application │ │ ├── UserCreate │ │ │ └── UserCreate.ts │ │ ├── UserDelete │ │ │ └── UserDelete.ts │ │ ├── UserEdit │ │ │ └── UserEdit.ts │ │ ├── UserGetAll │ │ │ └── UserGetAll.ts │ │ └── UserGetOneById │ │ │ └── UserGetOneById.ts │ │ ├── domain │ │ ├── User.ts │ │ ├── UserCreatedAt.ts │ │ ├── UserEmail.ts │ │ ├── UserId.ts │ │ ├── UserName.ts │ │ ├── UserNotFoundError.ts │ │ └── UserRepository.ts │ │ └── infrastructure │ │ ├── ExpressUserController.ts │ │ ├── ExpressUserRouter.ts │ │ ├── InMemoryUserRepository.ts │ │ └── PostgresUserRepository.ts └── main.ts ├── tests └── lib │ └── User │ ├── __mocks__ │ └── InMemoryUserRepository.ts │ ├── application │ ├── UserCreate │ │ └── UserCreate.test.ts │ ├── UserDelete │ │ └── UserDelete.test.ts │ ├── UserEdit │ │ └── UserEdit.test.ts │ ├── UserGetAll │ │ └── UserGetAll.test.ts │ └── UserGetOneById │ │ └── UserGetOneById.test.ts │ ├── domain │ └── UserStub.ts │ └── infrastructure │ ├── ExpressUserRouter.test.ts │ └── PostgresUserRepository.test.ts └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL="" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | .env 4 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/package.json -------------------------------------------------------------------------------- /src/lib/Shared/infrastructure/ServiceContainer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/Shared/infrastructure/ServiceContainer.ts -------------------------------------------------------------------------------- /src/lib/Shared/infrastructure/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/Shared/infrastructure/env.ts -------------------------------------------------------------------------------- /src/lib/User/application/UserCreate/UserCreate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/application/UserCreate/UserCreate.ts -------------------------------------------------------------------------------- /src/lib/User/application/UserDelete/UserDelete.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/application/UserDelete/UserDelete.ts -------------------------------------------------------------------------------- /src/lib/User/application/UserEdit/UserEdit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/application/UserEdit/UserEdit.ts -------------------------------------------------------------------------------- /src/lib/User/application/UserGetAll/UserGetAll.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/application/UserGetAll/UserGetAll.ts -------------------------------------------------------------------------------- /src/lib/User/application/UserGetOneById/UserGetOneById.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/application/UserGetOneById/UserGetOneById.ts -------------------------------------------------------------------------------- /src/lib/User/domain/User.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/User.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserCreatedAt.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserCreatedAt.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserEmail.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserEmail.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserId.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserId.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserName.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserName.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserNotFoundError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserNotFoundError.ts -------------------------------------------------------------------------------- /src/lib/User/domain/UserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/domain/UserRepository.ts -------------------------------------------------------------------------------- /src/lib/User/infrastructure/ExpressUserController.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/infrastructure/ExpressUserController.ts -------------------------------------------------------------------------------- /src/lib/User/infrastructure/ExpressUserRouter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/infrastructure/ExpressUserRouter.ts -------------------------------------------------------------------------------- /src/lib/User/infrastructure/InMemoryUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/infrastructure/InMemoryUserRepository.ts -------------------------------------------------------------------------------- /src/lib/User/infrastructure/PostgresUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/lib/User/infrastructure/PostgresUserRepository.ts -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/src/main.ts -------------------------------------------------------------------------------- /tests/lib/User/__mocks__/InMemoryUserRepository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/__mocks__/InMemoryUserRepository.ts -------------------------------------------------------------------------------- /tests/lib/User/application/UserCreate/UserCreate.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/application/UserCreate/UserCreate.test.ts -------------------------------------------------------------------------------- /tests/lib/User/application/UserDelete/UserDelete.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/application/UserDelete/UserDelete.test.ts -------------------------------------------------------------------------------- /tests/lib/User/application/UserEdit/UserEdit.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/application/UserEdit/UserEdit.test.ts -------------------------------------------------------------------------------- /tests/lib/User/application/UserGetAll/UserGetAll.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/application/UserGetAll/UserGetAll.test.ts -------------------------------------------------------------------------------- /tests/lib/User/application/UserGetOneById/UserGetOneById.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/application/UserGetOneById/UserGetOneById.test.ts -------------------------------------------------------------------------------- /tests/lib/User/domain/UserStub.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/domain/UserStub.ts -------------------------------------------------------------------------------- /tests/lib/User/infrastructure/ExpressUserRouter.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/infrastructure/ExpressUserRouter.test.ts -------------------------------------------------------------------------------- /tests/lib/User/infrastructure/PostgresUserRepository.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tests/lib/User/infrastructure/PostgresUserRepository.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mvrcoag/nodejs-express-hexagonal-architecture/HEAD/tsconfig.json --------------------------------------------------------------------------------