This project is an start kit for api model in clean architecture using typescript to follow abstract concepts, to support any lib creating adapters and being happy 😀
├── src│ ├── app # Application logic and rules│ │ ├── entities # Entities of data │ │ ├── respositories # Interface for repositories│ │ └── use-cases # Application use cases│ ├── infra # General components│ │ ├── core # Interface base for implementation on adapters│ │ │ ├── adapters # Adapters for libs into project│ │ │ │ └── http # Http libs adapters (Express, Koa, ...)│ │ │ ├── interfaces # Basic interfaces of the system│ │ │ └── Route.ts # Class for registering system routes│ │ ├── database # Database configurations│ │ ├── routes # Routes│ │ └── server.ts # Starting server file│ ├── presentation # Communication adapter between app and infra│ | ├── controller # All Controllers│ | | ├── Controller.ts # Interface of Controller for implementations│ | | └── ... # Application controllers│ | ├── protocols # All Controllers│ | | └── HttpProtocol.ts # Http return interface that every application must respect├── .gitignore # Ignore file for git├── .prettierrc # Prettier config ├── package.json ├── package.lock.json ├── README.md └── tsconfig.json # Project Typescript configuration file