Skip to content

Commit 57cb83e

Browse files
committed
feat(vsa): change folder structure to add vertical slice architecture
closes #413
1 parent 815c831 commit 57cb83e

File tree

175 files changed

+637
-637
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

175 files changed

+637
-637
lines changed

Diff for: .eslintrc.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ module.exports = {
246246
},
247247
overrides: [
248248
{
249-
files: ['src/!(presentation|types)/**/*.ts'],
249+
files: ['src/!(contract|types)/**/*.ts'],
250250
rules: {
251251
'hexagonal-architecture/enforce': ['error']
252252
}

Diff for: jest.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ module.exports = {
3030

3131
/* Bootstrap settings */
3232
// Set initial config and enable jest-extended features
33-
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts', 'jest-extended/all'],
33+
setupFilesAfterEnv: ['<rootDir>/test/jest.setup.ts'],
3434

3535
/* Global test settings */
3636
// Automatically clear mock calls and instances between every test

Diff for: package-lock.json

+337-337
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: package.json

+21-21
Original file line numberDiff line numberDiff line change
@@ -64,20 +64,20 @@
6464
"dependencies": {
6565
"@ngneat/falso": "^7.2.0",
6666
"@prisma/client": "^5.10.2",
67-
"@tsed/ajv": "^7.62.2",
68-
"@tsed/common": "^7.62.2",
69-
"@tsed/components-scan": "^7.62.2",
70-
"@tsed/core": "^7.62.2",
71-
"@tsed/di": "^7.62.2",
72-
"@tsed/exceptions": "^7.62.2",
73-
"@tsed/ioredis": "^7.62.2",
74-
"@tsed/json-mapper": "^7.62.2",
67+
"@tsed/ajv": "^7.62.3",
68+
"@tsed/common": "^7.62.3",
69+
"@tsed/components-scan": "^7.62.3",
70+
"@tsed/core": "^7.62.3",
71+
"@tsed/di": "^7.62.3",
72+
"@tsed/exceptions": "^7.62.3",
73+
"@tsed/ioredis": "^7.62.3",
74+
"@tsed/json-mapper": "^7.62.3",
7575
"@tsed/logger": "^6.6.3",
76-
"@tsed/openspec": "^7.62.2",
77-
"@tsed/platform-express": "^7.62.2",
78-
"@tsed/prisma": "^7.62.2",
79-
"@tsed/schema": "^7.62.2",
80-
"@tsed/swagger": "^7.62.2",
76+
"@tsed/openspec": "^7.62.3",
77+
"@tsed/platform-express": "^7.62.3",
78+
"@tsed/prisma": "^7.62.3",
79+
"@tsed/schema": "^7.62.3",
80+
"@tsed/swagger": "^7.62.3",
8181
"ajv": "^8.12.0",
8282
"argon2": "^0.40.1",
8383
"body-parser": "^1.20.2",
@@ -134,18 +134,18 @@
134134
"@types/luxon": "^3.4.2",
135135
"@types/method-override": "^0.0.35",
136136
"@types/multer": "^1.4.11",
137-
"@types/node": "^20.11.24",
137+
"@types/node": "^20.11.25",
138138
"@types/node-emoji": "^1.8.2",
139139
"@types/source-map-support": "^0.5.10",
140140
"@types/supertest": "^6.0.2",
141141
"@types/swagger-schema-official": "^2.0.25",
142142
"@types/uuid": "^9.0.8",
143-
"@typescript-eslint/eslint-plugin": "^7.1.0",
144-
"@typescript-eslint/parser": "^7.1.0",
143+
"@typescript-eslint/eslint-plugin": "^7.1.1",
144+
"@typescript-eslint/parser": "^7.1.1",
145145
"commitizen": "^4.3.0",
146146
"copyfiles": "^2.4.1",
147147
"cross-env": "^7.0.3",
148-
"cspell": "^8.5.0",
148+
"cspell": "^8.6.0",
149149
"cz-conventional-changelog": "^3.3.0",
150150
"eslint": "^8.57.0",
151151
"eslint-config-airbnb-base": "^15.0.0",
@@ -159,7 +159,7 @@
159159
"eslint-plugin-jest": "^27.9.0",
160160
"eslint-plugin-jest-extended": "^2.0.0",
161161
"eslint-plugin-jsonc": "^2.13.0",
162-
"eslint-plugin-markdown": "^3.0.1",
162+
"eslint-plugin-markdown": "^4.0.1",
163163
"eslint-plugin-n": "^16.6.2",
164164
"eslint-plugin-optimize-regex": "^1.2.1",
165165
"eslint-plugin-prefer-arrow": "^1.2.3",
@@ -198,15 +198,15 @@
198198
"tsc-alias": "^1.8.8",
199199
"tsconfig-paths": "^4.2.0",
200200
"tsx": "^4.7.1",
201-
"typescript": "^5.3.3",
201+
"typescript": "^5.4.2",
202202
"yaml-eslint-parser": "^1.2.2"
203203
},
204204
"engines": {
205205
"node": ">=20.9.0",
206206
"npm": ">=6.7.0"
207207
},
208208
"prisma": {
209-
"schema": "src/infrastructure/shared/persistence/prisma/schema.prisma",
210-
"seed": "tsx src/infrastructure/shared/persistence/prisma/seed.ts"
209+
"schema": "src/shared/infrastructure/persistence/prisma/schema.prisma",
210+
"seed": "tsx src/shared/infrastructure/persistence/prisma/seed.ts"
211211
}
212212
}

Diff for: src/presentation/rest/config/app.config.ts renamed to src/contract/rest/config/app.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { sync as readPackageJsonSync } from 'read-pkg';
22

3-
import { getEnvironmentNumber, getEnvironmentString } from '@infrastructure/shared/config/environment';
3+
import { getEnvironmentNumber, getEnvironmentString } from '@shared/infrastructure/config/environment';
44

55
const AppInfo = Object.freeze({
66
APP_VERSION: getEnvironmentString('APP_VERSION', readPackageJsonSync().version),
File renamed without changes.

Diff for: src/presentation/rest/controllers/authentication/authenticated-user.api-response.ts renamed to src/contract/rest/controllers/authentication/authenticated-user.api-response.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Default, Email, Enum, Format, Property } from '@tsed/schema';
22

3-
import { UserResponse } from '@application/users';
4-
import { UserGenders, UserRoles } from '@domain/users';
3+
import { UserResponse } from '@modules/users/application';
4+
import { UserGenders, UserRoles } from '@modules/users/domain';
55

66
class AuthenticatedUserApiResponse {
77
@Property()

Diff for: src/presentation/rest/controllers/authentication/authentication.controller.ts renamed to src/contract/rest/controllers/authentication/authentication.controller.ts

+17-17
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@ import { BodyParams, Context, Req, Res } from '@tsed/common';
22
import { Delete, Description, Example, Get, Post, Returns, Status, Summary, Tags, Title } from '@tsed/schema';
33
import { StatusCodes } from 'http-status-codes';
44

5-
import { SessionResponse } from '@application/sessions';
6-
import { EndSessionRequest, EndSessionUseCase } from '@application/sessions/end';
7-
import { RefreshSessionRequest, RefreshSessionUseCase } from '@application/sessions/refresh';
8-
import { StartSessionRequest, StartSessionUseCase } from '@application/sessions/start';
9-
import { UserResponse } from '@application/users';
10-
import { AuthenticateUserRequest, AuthenticateUserUseCase } from '@application/users/authentication';
11-
import { FindUserRequest, FindUserUseCase } from '@application/users/find';
12-
import { Logger } from '@domain/shared';
13-
import { TriggeredBy, TriggeredByUser } from '@domain/shared/entities/triggered-by';
14-
import { Authentication } from '@infrastructure/shared/authentication';
15-
import { AuthenticationUtils } from '@infrastructure/shared/authentication/authentication-utils';
16-
import { AppConfig } from '@presentation/rest/config';
17-
import { NoCredentialsProvidedException } from '@presentation/rest/exceptions';
18-
import { RequestUtils } from '@presentation/rest/shared/request.utils';
19-
import { ResponseUtils } from '@presentation/rest/shared/response.utils';
20-
import { RestController } from '@presentation/rest/shared/rest-controller.decorator';
21-
import { WithAuth } from '@presentation/rest/shared/with-auth.decorator';
5+
import { AppConfig } from '@contract/rest/config';
6+
import { NoCredentialsProvidedException } from '@contract/rest/exceptions';
7+
import { RequestUtils } from '@contract/rest/shared/request.utils';
8+
import { ResponseUtils } from '@contract/rest/shared/response.utils';
9+
import { RestController } from '@contract/rest/shared/rest-controller.decorator';
10+
import { WithAuth } from '@contract/rest/shared/with-auth.decorator';
11+
import { SessionResponse } from '@modules/sessions/application';
12+
import { EndSessionRequest, EndSessionUseCase } from '@modules/sessions/application/end';
13+
import { RefreshSessionRequest, RefreshSessionUseCase } from '@modules/sessions/application/refresh';
14+
import { StartSessionRequest, StartSessionUseCase } from '@modules/sessions/application/start';
15+
import { UserResponse } from '@modules/users/application';
16+
import { AuthenticateUserRequest, AuthenticateUserUseCase } from '@modules/users/application/authentication';
17+
import { FindUserRequest, FindUserUseCase } from '@modules/users/application/find';
18+
import { Logger } from '@shared/domain';
19+
import { TriggeredBy, TriggeredByUser } from '@shared/domain/entities/triggered-by';
20+
import { Authentication } from '@shared/infrastructure/authentication';
21+
import { AuthenticationUtils } from '@shared/infrastructure/authentication/authentication-utils';
2222

2323
import { AuthenticatedUserApiResponse } from './authenticated-user.api-response';
2424
import { UserSuccessfullyAuthenticatedApiResponse } from './user-successfully-authenticated.api-response';

Diff for: src/presentation/rest/controllers/authentication/user-successfully-authenticated.api-response.ts renamed to src/contract/rest/controllers/authentication/user-successfully-authenticated.api-response.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CollectionOf, Email, Property } from '@tsed/schema';
22

3-
import { SessionResponse } from '@application/sessions';
3+
import { SessionResponse } from '@modules/sessions/application';
44

55
class UserSuccessfullyAuthenticatedApiResponse {
66
@Property()

Diff for: src/presentation/rest/controllers/health/health-status.api-response.ts renamed to src/contract/rest/controllers/health/health-status.api-response.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Default, Property } from '@tsed/schema';
22

3-
import { HealthStatusResponse } from '@application/health';
4-
import { AppInfo } from '@presentation/rest/config';
3+
import { AppInfo } from '@contract/rest/config';
4+
import { HealthStatusResponse } from '@modules/health/application';
55

66
class HealthStatusApiResponse {
77
@Property()

Diff for: src/presentation/rest/controllers/health/health.controller.ts renamed to src/contract/rest/controllers/health/health.controller.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import { Context, Get } from '@tsed/common';
22
import { Description, Returns, Status, Summary, Tags, Title } from '@tsed/schema';
33
import { StatusCodes } from 'http-status-codes';
44

5-
import { CheckHealthStatusRequest, CheckHealthStatusUseCase } from '@application/health';
6-
import { TriggeredBy } from '@domain/shared/entities/triggered-by';
7-
import { AppConfig, AppInfo } from '@presentation/rest/config';
8-
import { RestController } from '@presentation/rest/shared/rest-controller.decorator';
5+
import { AppConfig, AppInfo } from '@contract/rest/config';
6+
import { RestController } from '@contract/rest/shared/rest-controller.decorator';
7+
import { CheckHealthStatusRequest, CheckHealthStatusUseCase } from '@modules/health/application';
8+
import { TriggeredBy } from '@shared/domain/entities/triggered-by';
99

1010
import { HealthStatusApiResponse } from './health-status.api-response';
1111

Diff for: src/presentation/rest/controllers/users/user.api-response.ts renamed to src/contract/rest/controllers/users/user.api-response.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Default, Email, Enum, Format, Property } from '@tsed/schema';
22

3-
import { UserResponse } from '@application/users';
4-
import { UserGenders, UserRoles } from '@domain/users';
3+
import { UserResponse } from '@modules/users/application';
4+
import { UserGenders, UserRoles } from '@modules/users/domain';
55

66
class UserApiResponse {
77
@Property()

Diff for: src/presentation/rest/controllers/users/user.controller.ts renamed to src/contract/rest/controllers/users/user.controller.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { Context, Get, PathParams } from '@tsed/common';
22
import { Description, Returns, Status, Summary, Tags, Title } from '@tsed/schema';
33
import { StatusCodes } from 'http-status-codes';
44

5-
import { FindUserRequest, FindUserUseCase } from '@application/users/find';
6-
import { SearchAllUsersRequest, SearchAllUsersUseCase } from '@application/users/search-all';
7-
import { TriggeredBy } from '@domain/shared/entities/triggered-by';
8-
import { UserRoles } from '@domain/users';
9-
import { AppConfig } from '@presentation/rest/config';
10-
import { RestController } from '@presentation/rest/shared/rest-controller.decorator';
11-
import { WithAuth } from '@presentation/rest/shared/with-auth.decorator';
5+
import { AppConfig } from '@contract/rest/config';
6+
import { RestController } from '@contract/rest/shared/rest-controller.decorator';
7+
import { WithAuth } from '@contract/rest/shared/with-auth.decorator';
8+
import { FindUserRequest, FindUserUseCase } from '@modules/users/application/find';
9+
import { SearchAllUsersRequest, SearchAllUsersUseCase } from '@modules/users/application/search-all';
10+
import { UserRoles } from '@modules/users/domain';
11+
import { TriggeredBy } from '@shared/domain/entities/triggered-by';
1212

1313
import { UserApiResponse } from './user.api-response';
1414

Diff for: src/presentation/rest/exceptions/exception.api-response.ts renamed to src/contract/rest/exceptions/exception.api-response.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Default, Enum, Integer, Property } from '@tsed/schema';
33
import { ReasonPhrases, StatusCodes } from 'http-status-codes';
44
import * as emoji from 'node-emoji';
55

6-
import { AppInfo } from '@presentation/rest/config';
6+
import { AppInfo } from '@contract/rest/config';
77

88
import { ApiException } from './api.exception';
99

File renamed without changes.

Diff for: src/presentation/rest/filters/error-handler.filter.ts renamed to src/contract/rest/filters/error-handler.filter.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { Catch, ExceptionFilterMethods, PlatformContext, Res } from '@tsed/common';
22
import { Exception, Exception as TsEdException } from '@tsed/exceptions';
33

4-
import { Logger } from '@domain/shared';
54
import {
65
ApiException,
76
BadRequestException,
87
ExceptionApiResponse,
98
InternalServerErrorException,
109
ResourceNotFoundException,
1110
UnauthorizedException
12-
} from '@presentation/rest/exceptions';
11+
} from '@contract/rest/exceptions';
12+
import { Logger } from '@shared/domain';
1313

1414
@Catch(Exception)
1515
@Catch(Error)
File renamed without changes.

Diff for: src/presentation/rest/filters/not-found.filter.ts renamed to src/contract/rest/filters/not-found.filter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Catch, ExceptionFilterMethods, PlatformContext, ResourceNotFound } from '@tsed/common';
22

3-
import { PathNotFoundException } from '@presentation/rest/exceptions';
3+
import { PathNotFoundException } from '@contract/rest/exceptions';
44

55
@Catch(ResourceNotFound)
66
class ResourceNotFoundFilter implements ExceptionFilterMethods {

Diff for: src/presentation/rest/middlewares/authentication.middleware.ts renamed to src/contract/rest/middlewares/authentication.middleware.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { Context, Middleware, MiddlewareMethods, Req, Res } from '@tsed/common';
22

3-
import { ValidateSessionRequest, ValidateSessionUseCase } from '@application/sessions/validate';
4-
import { ValidatedSessionResponse } from '@application/sessions/validate/validated-session.response';
5-
import { TriggeredByUser } from '@domain/shared/entities/triggered-by';
6-
import { UserRoles } from '@domain/users';
7-
import { Authentication } from '@infrastructure/shared/authentication/authentication';
8-
import { AuthenticationUtils } from '@infrastructure/shared/authentication/authentication-utils';
9-
import { AppConfig } from '@presentation/rest/config';
10-
import { ForbiddenException } from '@presentation/rest/exceptions';
11-
import { RequestUtils } from '@presentation/rest/shared/request.utils';
12-
import { ResponseUtils } from '@presentation/rest/shared/response.utils';
3+
import { AppConfig } from '@contract/rest/config';
4+
import { ForbiddenException } from '@contract/rest/exceptions';
5+
import { RequestUtils } from '@contract/rest/shared/request.utils';
6+
import { ResponseUtils } from '@contract/rest/shared/response.utils';
7+
import { ValidateSessionRequest, ValidateSessionUseCase } from '@modules/sessions/application/validate';
8+
import { ValidatedSessionResponse } from '@modules/sessions/application/validate/validated-session.response';
9+
import { UserRoles } from '@modules/users/domain';
10+
import { TriggeredByUser } from '@shared/domain/entities/triggered-by';
11+
import { Authentication } from '@shared/infrastructure/authentication/authentication';
12+
import { AuthenticationUtils } from '@shared/infrastructure/authentication/authentication-utils';
1313

1414
@Middleware()
1515
class AuthenticationMiddleware implements MiddlewareMethods {

Diff for: src/presentation/rest/middlewares/error-handler.middleware.ts renamed to src/contract/rest/middlewares/error-handler.middleware.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import { Err, Middleware, MiddlewareMethods, Next, Req, Res } from '@tsed/common';
22
import { Exception as TsEdException } from '@tsed/exceptions';
33

4-
import { Logger } from '@domain/shared';
54
import {
65
ApiException,
76
BadRequestException,
87
ExceptionApiResponse,
98
ResourceNotFoundException,
109
UnauthorizedException
11-
} from '@presentation/rest/exceptions';
12-
import { InternalServerErrorException } from '@presentation/rest/exceptions/internal-server-error.exception';
10+
} from '@contract/rest/exceptions';
11+
import { InternalServerErrorException } from '@contract/rest/exceptions/internal-server-error.exception';
12+
import { Logger } from '@shared/domain';
1313

1414
@Middleware()
1515
class ErrorHandlerMiddleware implements MiddlewareMethods {
File renamed without changes.

Diff for: src/presentation/rest/middlewares/logger.middleware.ts renamed to src/contract/rest/middlewares/logger.middleware.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Context, Middleware, MiddlewareMethods, Req, Res } from '@tsed/common';
22

3-
import { GlobalConfig } from '@infrastructure/shared/config';
4-
import { PINO_LOGGER } from '@infrastructure/shared/logger/pino-logger';
3+
import { GlobalConfig } from '@shared/infrastructure/config';
4+
import { PINO_LOGGER } from '@shared/infrastructure/logger/pino-logger';
55

66
@Middleware()
77
class LoggerMiddleware implements MiddlewareMethods {

Diff for: src/presentation/rest/middlewares/metadata.middleware.ts renamed to src/contract/rest/middlewares/metadata.middleware.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Context, Middleware, MiddlewareMethods, OnResponse, Req } from '@tsed/common';
22

3-
import { Token, TokenProviderDomainService } from '@domain/sessions/tokens';
4-
import { Nullable } from '@domain/shared';
5-
import { TriggeredByAnonymous, TriggeredByUser } from '@domain/shared/entities/triggered-by';
6-
import { Authentication } from '@infrastructure/shared/authentication';
7-
import { AuthenticationUtils } from '@infrastructure/shared/authentication/authentication-utils';
8-
import { AppConfig } from '@presentation/rest/config';
9-
import { RequestUtils } from '@presentation/rest/shared/request.utils';
3+
import { AppConfig } from '@contract/rest/config';
4+
import { RequestUtils } from '@contract/rest/shared/request.utils';
5+
import { Token, TokenProviderDomainService } from '@modules/sessions/domain/tokens';
6+
import { Nullable } from '@shared/domain';
7+
import { TriggeredByAnonymous, TriggeredByUser } from '@shared/domain/entities/triggered-by';
8+
import { Authentication } from '@shared/infrastructure/authentication';
9+
import { AuthenticationUtils } from '@shared/infrastructure/authentication/authentication-utils';
1010

1111
@Middleware()
1212
class MetadataMiddleware implements MiddlewareMethods, OnResponse {

Diff for: src/presentation/rest/middlewares/not-found.middleware.ts renamed to src/contract/rest/middlewares/not-found.middleware.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Middleware, MiddlewareMethods, Next, Req, Res } from '@tsed/common';
22

3-
import { PathNotFoundException } from '@presentation/rest/exceptions';
3+
import { PathNotFoundException } from '@contract/rest/exceptions';
44

55
@Middleware()
66
class NotFoundMiddleware implements MiddlewareMethods {

Diff for: src/presentation/rest/server.ts renamed to src/contract/rest/server.ts

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
import '@tsed/ajv';
12
import '@tsed/platform-express';
23
import '@tsed/swagger';
3-
import '@tsed/ajv';
44
import './filters';
55

66
import { PlatformApplication } from '@tsed/common';
@@ -15,31 +15,33 @@ import figlet from 'figlet';
1515
import methodOverride from 'method-override';
1616
import * as emoji from 'node-emoji';
1717

18-
import { Logger } from '@domain/shared';
19-
import { CacheConfig, GlobalConfig } from '@infrastructure/shared/config';
18+
import { Logger } from '@shared/domain';
19+
import { CacheConfig, GlobalConfig } from '@shared/infrastructure/config';
2020

2121
import { AppConfig, AppInfo } from './config';
2222
import { ErrorHandlerMiddleware, LoggerMiddleware, MetadataMiddleware, NotFoundMiddleware } from './middlewares';
2323

24+
const ROOT_DIRECTORY = __dirname;
25+
2426
class Server {
2527
@Inject()
2628
private app: PlatformApplication;
2729

2830
public static async getConfiguration(): Promise<Partial<TsED.Configuration>> {
2931
const baseConfiguration: Partial<TsED.Configuration> = {
30-
rootDir: __dirname,
32+
rootDir: ROOT_DIRECTORY,
3133
acceptMimes: ['application/json'],
3234
httpPort: AppConfig.PORT,
3335
httpsPort: false
3436
};
3537

3638
const providersConfiguration: Partial<TsED.Configuration> = await importProviders({
3739
mount: {
38-
[AppConfig.BASE_PATH]: [`${__dirname}/controllers/**/*.controller.ts`]
40+
[AppConfig.BASE_PATH]: [`${ROOT_DIRECTORY}/controllers/**/*.controller.ts`]
3941
},
4042
imports: [
41-
`${__dirname}/../../infrastructure/**/*.domain-service.ts`,
42-
`${__dirname}/../../infrastructure/**/*.repository.ts`
43+
`${ROOT_DIRECTORY}/../../modules/**/infrastructure/**/*.domain-service.ts`,
44+
`${ROOT_DIRECTORY}/../../modules/**/infrastructure/**/*.repository.ts`
4345
]
4446
});
4547

0 commit comments

Comments
 (0)