├── .env.example ├── .eslintignore ├── .eslintrc.js ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── check-pr-title.yml │ ├── conventional-label.yml │ └── nodejs.yml ├── .gitignore ├── .husky ├── .gitignore ├── commit-msg ├── pre-commit └── pre-push ├── .nvmrc ├── LICENSE ├── README.md ├── commitlint.config.js ├── jest.config.js ├── package.json ├── src ├── main.ts ├── shared │ ├── domain │ │ ├── email-sender.ts │ │ └── logger.ts │ └── infrastructure │ │ ├── config.ts │ │ ├── dependencies.ts │ │ ├── email-sender │ │ └── fake-email-sender.ts │ │ ├── load-env-vars.ts │ │ └── logger │ │ └── console-logger.ts └── users │ ├── application │ └── welcome-message-sender.ts │ ├── domain │ ├── user-repository.ts │ └── user.ts │ └── infrastructure │ ├── dependencies.ts │ ├── rest-api │ ├── user-controller.ts │ └── user-router.ts │ └── user-repository │ ├── in-memory-user-repository.ts │ └── users.ts ├── tests └── users │ └── infrastructure │ └── user-repository │ └── in-memory-user-repository.test.ts ├── tsconfig.json └── tsconfig.prod.json /.env.example: -------------------------------------------------------------------------------- 1 | PORT=3000 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | node_modules/ 3 | coverage/ 4 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.github/workflows/check-pr-title.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.github/workflows/check-pr-title.yml -------------------------------------------------------------------------------- /.github/workflows/conventional-label.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.github/workflows/conventional-label.yml -------------------------------------------------------------------------------- /.github/workflows/nodejs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.github/workflows/nodejs.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | .tmp 4 | .idea 5 | .env 6 | coverage/ 7 | -------------------------------------------------------------------------------- /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.husky/commit-msg -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx lint-staged -------------------------------------------------------------------------------- /.husky/pre-push: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/.husky/pre-push -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v18.0.0 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/README.md -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { extends: ['@commitlint/config-conventional'] }; 2 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/jest.config.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/package.json -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/shared/domain/email-sender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/domain/email-sender.ts -------------------------------------------------------------------------------- /src/shared/domain/logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/domain/logger.ts -------------------------------------------------------------------------------- /src/shared/infrastructure/config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/infrastructure/config.ts -------------------------------------------------------------------------------- /src/shared/infrastructure/dependencies.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/infrastructure/dependencies.ts -------------------------------------------------------------------------------- /src/shared/infrastructure/email-sender/fake-email-sender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/infrastructure/email-sender/fake-email-sender.ts -------------------------------------------------------------------------------- /src/shared/infrastructure/load-env-vars.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/infrastructure/load-env-vars.ts -------------------------------------------------------------------------------- /src/shared/infrastructure/logger/console-logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/shared/infrastructure/logger/console-logger.ts -------------------------------------------------------------------------------- /src/users/application/welcome-message-sender.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/application/welcome-message-sender.ts -------------------------------------------------------------------------------- /src/users/domain/user-repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/domain/user-repository.ts -------------------------------------------------------------------------------- /src/users/domain/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/domain/user.ts -------------------------------------------------------------------------------- /src/users/infrastructure/dependencies.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/infrastructure/dependencies.ts -------------------------------------------------------------------------------- /src/users/infrastructure/rest-api/user-controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/infrastructure/rest-api/user-controller.ts -------------------------------------------------------------------------------- /src/users/infrastructure/rest-api/user-router.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/infrastructure/rest-api/user-router.ts -------------------------------------------------------------------------------- /src/users/infrastructure/user-repository/in-memory-user-repository.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/infrastructure/user-repository/in-memory-user-repository.ts -------------------------------------------------------------------------------- /src/users/infrastructure/user-repository/users.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/src/users/infrastructure/user-repository/users.ts -------------------------------------------------------------------------------- /tests/users/infrastructure/user-repository/in-memory-user-repository.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/tests/users/infrastructure/user-repository/in-memory-user-repository.test.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.prod.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlbertHernandez/hexagonal-architecture-typescript-service-template/HEAD/tsconfig.prod.json --------------------------------------------------------------------------------