No description
  • TypeScript 92%
  • JavaScript 8%
Find a file
2025-02-12 12:41:47 +00:00
.husky Initial commit. 2025-02-12 11:55:26 +00:00
src Initial commit. 2025-02-12 11:55:26 +00:00
.env.example Initial commit. 2025-02-12 11:55:26 +00:00
.gitignore Initial commit. 2025-02-12 11:55:26 +00:00
ARCHITECTURE.md Initial commit. 2025-02-12 11:55:26 +00:00
eslint.config.mjs Initial commit. 2025-02-12 11:55:26 +00:00
package-lock.json Add package for dependency injection, worker_thread management, distributed job processing (using Redis) 2025-02-12 12:41:47 +00:00
package.json Add package for dependency injection, worker_thread management, distributed job processing (using Redis) 2025-02-12 12:41:47 +00:00
README.md Adjust folder structure. 2025-02-12 12:26:42 +00:00
STYLE GUIDE.md Initial commit. 2025-02-12 11:55:26 +00:00
TODO.md Initial commit. 2025-02-12 11:55:26 +00:00
tsconfig.json Initial commit. 2025-02-12 11:55:26 +00:00

Service Framework

Architecture

Folder Structure

```text
src/
├── config/           # code that parses environment variables and 
|                       exports a configuration object to the rest 
|                       of the codebase.
|
├── middlewares/     # middlewares for Express
|
├── index.ts         # Application entry point
|
├── routes/           # top-level files default export a Router
|                       object describing the routes to serve.
|                       Note: the routers are loaded and served 
|                       automatically using the file name!
|
├── services/        # any logic, low-level (e.g. cache) or business logic
|   ├── constants/
|   ├── models/
|   ├── repositories/
|   ├── utils/
|   └── types/
|
├── constants/        # any constant values and enums   
|
├── models/          # data models and interfaces
|
├── repositories/    # data access layer
|
├── utils/           # utility functions
|
└── types/           # global type definitions
```

Testing

Test infrastructure is currently being implemented: using Jest with ts-jest package

```json
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
},
"typescript.updateImportsOnFileMove.enabled": "always",
"typescript.preferences.importModuleSpecifier": "relative"
}
```