@impactor/nest 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +49 -0
- package/index.d.ts +40 -0
- package/nx.json +190 -0
- package/package.json +102 -0
- package/src/configs/app.d.ts +21 -0
- package/src/configs/app.js +65 -0
- package/src/configs/app.js.map +1 -0
- package/src/configs/database.d.ts +2 -0
- package/src/configs/database.js +23 -0
- package/src/configs/database.js.map +1 -0
- package/src/configs/microservice.d.ts +7 -0
- package/src/configs/microservice.js +26 -0
- package/src/configs/microservice.js.map +1 -0
- package/src/configs/multi-queue-rabbitmq-server.d.ts +24 -0
- package/src/configs/multi-queue-rabbitmq-server.js +91 -0
- package/src/configs/multi-queue-rabbitmq-server.js.map +1 -0
- package/src/configs/redis-config.d.ts +5 -0
- package/src/configs/redis-config.js +16 -0
- package/src/configs/redis-config.js.map +1 -0
- package/src/create-app.d.ts +3 -0
- package/src/create-app.js +104 -0
- package/src/create-app.js.map +1 -0
- package/src/create-microservice.d.ts +2 -0
- package/src/create-microservice.js +43 -0
- package/src/create-microservice.js.map +1 -0
- package/src/create-testing-microservice.d.ts +3 -0
- package/src/create-testing-microservice.js +30 -0
- package/src/create-testing-microservice.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-controller-path.d.ts +2 -0
- package/src/decorators/controller/add-decorators/add-controller-path.js +22 -0
- package/src/decorators/controller/add-decorators/add-controller-path.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-controller-tags.d.ts +2 -0
- package/src/decorators/controller/add-decorators/add-controller-tags.js +28 -0
- package/src/decorators/controller/add-decorators/add-controller-tags.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-http-method.d.ts +3 -0
- package/src/decorators/controller/add-decorators/add-http-method.js +27 -0
- package/src/decorators/controller/add-decorators/add-http-method.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-swagger-body.d.ts +3 -0
- package/src/decorators/controller/add-decorators/add-swagger-body.js +30 -0
- package/src/decorators/controller/add-decorators/add-swagger-body.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-swagger-operation.d.ts +3 -0
- package/src/decorators/controller/add-decorators/add-swagger-operation.js +21 -0
- package/src/decorators/controller/add-decorators/add-swagger-operation.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-swagger-params.d.ts +3 -0
- package/src/decorators/controller/add-decorators/add-swagger-params.js +50 -0
- package/src/decorators/controller/add-decorators/add-swagger-params.js.map +1 -0
- package/src/decorators/controller/add-decorators/add-swagger-response.d.ts +3 -0
- package/src/decorators/controller/add-decorators/add-swagger-response.js +33 -0
- package/src/decorators/controller/add-decorators/add-swagger-response.js.map +1 -0
- package/src/decorators/controller/controller.decorator.d.ts +2 -0
- package/src/decorators/controller/controller.decorator.js +18 -0
- package/src/decorators/controller/controller.decorator.js.map +1 -0
- package/src/decorators/controller/controller.factory.d.ts +11 -0
- package/src/decorators/controller/controller.factory.js +261 -0
- package/src/decorators/controller/controller.factory.js.map +1 -0
- package/src/decorators/controller/default-options.d.ts +2 -0
- package/src/decorators/controller/default-options.js +181 -0
- package/src/decorators/controller/default-options.js.map +1 -0
- package/src/decorators/controller/dto/empty.dto.d.ts +2 -0
- package/src/decorators/controller/dto/empty.dto.js +18 -0
- package/src/decorators/controller/dto/empty.dto.js.map +1 -0
- package/src/decorators/controller/dto/update-response.dto.d.ts +3 -0
- package/src/decorators/controller/dto/update-response.dto.js +16 -0
- package/src/decorators/controller/dto/update-response.dto.js.map +1 -0
- package/src/decorators/controller/interceptors/query.interceptor.d.ts +8 -0
- package/src/decorators/controller/interceptors/query.interceptor.js +59 -0
- package/src/decorators/controller/interceptors/query.interceptor.js.map +1 -0
- package/src/decorators/controller/route-handler.d.ts +3 -0
- package/src/decorators/controller/route-handler.js +44 -0
- package/src/decorators/controller/route-handler.js.map +1 -0
- package/src/decorators/controller/route.decorator.d.ts +2 -0
- package/src/decorators/controller/route.decorator.js +17 -0
- package/src/decorators/controller/route.decorator.js.map +1 -0
- package/src/decorators/controller/services/crud-typeorm.service.d.ts +46 -0
- package/src/decorators/controller/services/crud-typeorm.service.js +232 -0
- package/src/decorators/controller/services/crud-typeorm.service.js.map +1 -0
- package/src/decorators/controller/types/index.d.ts +54 -0
- package/src/decorators/controller/types/index.js +6 -0
- package/src/decorators/controller/types/index.js.map +1 -0
- package/src/decorators/controller/utils/merge-options.d.ts +2 -0
- package/src/decorators/controller/utils/merge-options.js +37 -0
- package/src/decorators/controller/utils/merge-options.js.map +1 -0
- package/src/decorators/controller/utils/reflect.d.ts +10 -0
- package/src/decorators/controller/utils/reflect.js +86 -0
- package/src/decorators/controller/utils/reflect.js.map +1 -0
- package/src/decorators/prop.decorator.d.ts +9 -0
- package/src/decorators/prop.decorator.js +80 -0
- package/src/decorators/prop.decorator.js.map +1 -0
- package/src/exceptions/rpc-bad-request.exception.d.ts +4 -0
- package/src/exceptions/rpc-bad-request.exception.js +19 -0
- package/src/exceptions/rpc-bad-request.exception.js.map +1 -0
- package/src/exceptions/rpc-base.exception.d.ts +6 -0
- package/src/exceptions/rpc-base.exception.js +22 -0
- package/src/exceptions/rpc-base.exception.js.map +1 -0
- package/src/exceptions/rpc-conflict.exception.d.ts +4 -0
- package/src/exceptions/rpc-conflict.exception.js +19 -0
- package/src/exceptions/rpc-conflict.exception.js.map +1 -0
- package/src/exceptions/rpc-internal-server-error.exception.d.ts +4 -0
- package/src/exceptions/rpc-internal-server-error.exception.js +19 -0
- package/src/exceptions/rpc-internal-server-error.exception.js.map +1 -0
- package/src/exceptions/rpc-method-not-allowed.exception.d.ts +4 -0
- package/src/exceptions/rpc-method-not-allowed.exception.js +19 -0
- package/src/exceptions/rpc-method-not-allowed.exception.js.map +1 -0
- package/src/exceptions/rpc-not-found.exception.d.ts +4 -0
- package/src/exceptions/rpc-not-found.exception.js +19 -0
- package/src/exceptions/rpc-not-found.exception.js.map +1 -0
- package/src/exceptions/rpc-not-implemented.exception.d.ts +4 -0
- package/src/exceptions/rpc-not-implemented.exception.js +19 -0
- package/src/exceptions/rpc-not-implemented.exception.js.map +1 -0
- package/src/exceptions/rpc-unauthorized.exception.d.ts +4 -0
- package/src/exceptions/rpc-unauthorized.exception.js +19 -0
- package/src/exceptions/rpc-unauthorized.exception.js.map +1 -0
- package/src/filters/error-to-rpc-exception.filter.d.ts +4 -0
- package/src/filters/error-to-rpc-exception.filter.js +48 -0
- package/src/filters/error-to-rpc-exception.filter.js.map +1 -0
- package/src/filters/error-to-ws-exception.filter.d.ts +4 -0
- package/src/filters/error-to-ws-exception.filter.js +47 -0
- package/src/filters/error-to-ws-exception.filter.js.map +1 -0
- package/src/filters/typeorm-exception.filter.d.ts +6 -0
- package/src/filters/typeorm-exception.filter.js +44 -0
- package/src/filters/typeorm-exception.filter.js.map +1 -0
- package/src/filters/ws-exception.filter.d.ts +5 -0
- package/src/filters/ws-exception.filter.js +39 -0
- package/src/filters/ws-exception.filter.js.map +1 -0
- package/src/generate-metadata.d.ts +10 -0
- package/src/generate-metadata.js +97 -0
- package/src/generate-metadata.js.map +1 -0
- package/src/guards/auth.guard.d.ts +14 -0
- package/src/guards/auth.guard.js +92 -0
- package/src/guards/auth.guard.js.map +1 -0
- package/src/modules/basic/basic.controller.d.ts +3 -0
- package/src/modules/basic/basic.controller.js +33 -0
- package/src/modules/basic/basic.controller.js.map +1 -0
- package/src/modules/basic/basic.module.d.ts +2 -0
- package/src/modules/basic/basic.module.js +45 -0
- package/src/modules/basic/basic.module.js.map +1 -0
- package/src/modules/basic/basic.service.d.ts +2 -0
- package/src/modules/basic/basic.service.js +24 -0
- package/src/modules/basic/basic.service.js.map +1 -0
- package/src/nest-swagger-metadata.js +553 -0
- package/src/nest-swagger-metadata.js.map +1 -0
- package/src/utils/logger.d.ts +2 -0
- package/src/utils/logger.js +14 -0
- package/src/utils/logger.js.map +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 Dibo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
utils for NestJs
|
|
2
|
+
|
|
3
|
+
## Decorators
|
|
4
|
+
|
|
5
|
+
## @Prop()
|
|
6
|
+
|
|
7
|
+
a param decorator that extracts a field from the request
|
|
8
|
+
and validates it using pipes
|
|
9
|
+
and add the suitable Swagger's docs.
|
|
10
|
+
|
|
11
|
+
### Examples
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
|
|
15
|
+
// extract `userId` from params
|
|
16
|
+
@Get(':userId')
|
|
17
|
+
findUserById(@Prop('userId') userId: string){ ... }
|
|
18
|
+
|
|
19
|
+
// extract the id from the query string
|
|
20
|
+
@Get()
|
|
21
|
+
filterByTenant(@Prop('tenantId', 'query') tenantId: string){ ... }
|
|
22
|
+
|
|
23
|
+
// extract the product id from the request's body
|
|
24
|
+
@Post()
|
|
25
|
+
createOrder(@Prop('productId','body') productId: string){ ... }
|
|
26
|
+
|
|
27
|
+
// manipulate the swagger's docs: make the id optional
|
|
28
|
+
@Get('id')
|
|
29
|
+
find(@Prop('id', 'params', { required: false }) id?: string){ ... }
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## @Controller()
|
|
34
|
+
|
|
35
|
+
Quickly generate all API endpoints and Crud operations of a controller without a single line of code.
|
|
36
|
+
It also generate Swagger decorators for all routes.
|
|
37
|
+
|
|
38
|
+
[Read more...](./README.controller.md)
|
|
39
|
+
|
|
40
|
+
## Exception Filters
|
|
41
|
+
|
|
42
|
+
- RCP: convert Error to RpcException
|
|
43
|
+
- WS: convert Error to WsException
|
|
44
|
+
- TypeORM
|
|
45
|
+
|
|
46
|
+
## Features
|
|
47
|
+
|
|
48
|
+
- `BasicModule`
|
|
49
|
+
- `createMicroservice()`: create a microservice
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export * from './src/configs/app';
|
|
2
|
+
export * from './src/configs/database';
|
|
3
|
+
export * from './src/configs/multi-queue-rabbitmq-server';
|
|
4
|
+
export * from './src/configs/redis-config';
|
|
5
|
+
export * from './src/create-microservice';
|
|
6
|
+
export * from './src/create-testing-microservice';
|
|
7
|
+
export * from './src/decorators/prop.decorator';
|
|
8
|
+
export * from './src/exceptions/rpc-bad-request.exception';
|
|
9
|
+
export * from './src/exceptions/rpc-conflict.exception';
|
|
10
|
+
export * from './src/exceptions/rpc-internal-server-error.exception';
|
|
11
|
+
export * from './src/exceptions/rpc-method-not-allowed.exception';
|
|
12
|
+
export * from './src/exceptions/rpc-not-found.exception';
|
|
13
|
+
export * from './src/exceptions/rpc-not-implemented.exception';
|
|
14
|
+
export * from './src/exceptions/rpc-unauthorized.exception';
|
|
15
|
+
export * from './src/filters/error-to-rpc-exception.filter';
|
|
16
|
+
export * from './src/filters/error-to-ws-exception.filter';
|
|
17
|
+
export * from './src/filters/typeorm-exception.filter';
|
|
18
|
+
export * from './src/filters/ws-exception.filter';
|
|
19
|
+
export * from './src/generate-metadata';
|
|
20
|
+
export * from './src/create-app';
|
|
21
|
+
export * from './src/guards/auth.guard';
|
|
22
|
+
export * from './src/modules/basic/basic.controller';
|
|
23
|
+
export * from './src/modules/basic/basic.module';
|
|
24
|
+
export * from './src/modules/basic/basic.service';
|
|
25
|
+
export * from './src/decorators/controller/add-decorators/add-http-method';
|
|
26
|
+
export * from './src/decorators/controller/add-decorators/add-swagger-body';
|
|
27
|
+
export * from './src/decorators/controller/add-decorators/add-swagger-operation';
|
|
28
|
+
export * from './src/decorators/controller/add-decorators/add-swagger-params';
|
|
29
|
+
export * from './src/decorators/controller/add-decorators/add-swagger-response';
|
|
30
|
+
export * from './src/decorators/controller/controller.factory';
|
|
31
|
+
export * from './src/decorators/controller/default-options';
|
|
32
|
+
export * from './src/decorators/controller/route.decorator';
|
|
33
|
+
export * from './src/decorators/controller/controller.decorator';
|
|
34
|
+
export * from './src/decorators/controller/dto/empty.dto';
|
|
35
|
+
export * from './src/decorators/controller/dto/update-response.dto';
|
|
36
|
+
export * from './src/decorators/controller/interceptors/query.interceptor';
|
|
37
|
+
export * from './src/decorators/controller/route-handler';
|
|
38
|
+
export * from './src/decorators/controller/services/crud-typeorm.service';
|
|
39
|
+
export * from './src/decorators/controller/types';
|
|
40
|
+
export * from './src/decorators/controller/utils/merge-options';
|
package/nx.json
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/nx/schemas/nx-schema.json",
|
|
3
|
+
"targetDefaults": {
|
|
4
|
+
"build": {
|
|
5
|
+
"executor": "@impactor/nx-manager:universal-builder",
|
|
6
|
+
"dependsOn": ["typecheck", "prebuild", "^build"],
|
|
7
|
+
"cache": true,
|
|
8
|
+
"inputs": ["default", "^default"],
|
|
9
|
+
"outputs": ["{projectRoot}/dist"],
|
|
10
|
+
"options": {
|
|
11
|
+
"forceRnDefaultPostBuild": true
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"serve": {
|
|
15
|
+
"executor": "nx:run-commands",
|
|
16
|
+
"dependsOn": ["build", "preserve"],
|
|
17
|
+
"continuous": true,
|
|
18
|
+
"options": {
|
|
19
|
+
"cwd": "{projectRoot}",
|
|
20
|
+
"command": "NODE_ENV=development pnpm tsx --env-file-if-exists=.env --env-file-if-exists=.env.local dist/main.js"
|
|
21
|
+
},
|
|
22
|
+
"configurations": {
|
|
23
|
+
"production": {
|
|
24
|
+
"command": "NODE_ENV=production pnpm tsx --env-file-if-exists=.env --env-file-if-exists=.env.local --env-file-if-exists=.env.production --env-file-if-exists=.env.production.local dist/main.js"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"nx-release-publish": {
|
|
29
|
+
"options": {
|
|
30
|
+
"packageRoot": "{projectRoot}/dist"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"semantic-release": {
|
|
34
|
+
"executor": "nx:run-commands",
|
|
35
|
+
"dependsOn": ["build", "prerelease"],
|
|
36
|
+
"options": {
|
|
37
|
+
"cwd": "{projectRoot}",
|
|
38
|
+
"command": "pnpm tsx node_modules/semantic-release/bin/semantic-release.js"
|
|
39
|
+
},
|
|
40
|
+
"configurations": {
|
|
41
|
+
"local": {
|
|
42
|
+
"command": "DOTENV_CONFIG_PATH=../../.env pnpm run release --no-ci"
|
|
43
|
+
},
|
|
44
|
+
"dry": {
|
|
45
|
+
"command": "DOTENV_CONFIG_PATH=../../.env pnpm run release --no-ci --dry-run"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"test": {
|
|
50
|
+
"inputs": ["test"],
|
|
51
|
+
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
52
|
+
"dependsOn": ["^build", "pretest"],
|
|
53
|
+
"configurations": {
|
|
54
|
+
"unit": {
|
|
55
|
+
"args": [
|
|
56
|
+
"--testPathIgnorePatterns '.*\\.e2e\\.spec\\.ts$'",
|
|
57
|
+
"--testPathIgnorePatterns '/.*-e2e/'",
|
|
58
|
+
"--testPathIgnorePatterns '/.*-e2e/'"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"e2e": {
|
|
62
|
+
"args": [
|
|
63
|
+
"--testMatch '**/*-e2e/**/*.{spec,test}.[mc]?[jt]s?(x)'",
|
|
64
|
+
"--testMatch '**/e2e/**/*.{spec,test}.[mc]?[jt]s?(x)'",
|
|
65
|
+
"--testMatch '**/*.e2e.(spec|test).?([mc])[jt]s?(x)'"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"@angular/build:application": {
|
|
71
|
+
"cache": true,
|
|
72
|
+
"dependsOn": ["prebuild", "^build"],
|
|
73
|
+
"inputs": ["default", "^default"]
|
|
74
|
+
},
|
|
75
|
+
"@nx/angular:package": {
|
|
76
|
+
"cache": true,
|
|
77
|
+
"dependsOn": ["^build"],
|
|
78
|
+
"inputs": ["default", "^default"],
|
|
79
|
+
"outputs": ["{projectRoot}/dist"],
|
|
80
|
+
"options": {
|
|
81
|
+
"project": "{projectRoot}/ng-package.json",
|
|
82
|
+
"tsConfig": "{projectRoot}/tsconfig.lib.json"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"@nx/js:tsc": {
|
|
86
|
+
"cache": true,
|
|
87
|
+
"dependsOn": ["^build"],
|
|
88
|
+
"inputs": ["default", "^default"]
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"namedInputs": {
|
|
92
|
+
"default": [
|
|
93
|
+
"{projectRoot}/src/**/*",
|
|
94
|
+
"!{projectRoot}/**/*.(spec|test)(.e2e)?.[tj]sx?",
|
|
95
|
+
"!{projectRoot}/**/e2e/**/*",
|
|
96
|
+
"{projectRoot}/.env(.*)?",
|
|
97
|
+
"{workspaceRoot}/tasks/(post-)?build.ts",
|
|
98
|
+
"{projectRoot}/(project|package|tsconfig)(.+)?.json",
|
|
99
|
+
"{workspaceRoot}/tsconfig.base.json",
|
|
100
|
+
{
|
|
101
|
+
"runtime": "node --version"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"env": "NODE_ENV"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"test": [
|
|
108
|
+
"default",
|
|
109
|
+
"{projectRoot}/tsconfig.spec.json",
|
|
110
|
+
"{projectRoot}/jest.config.[jt]s",
|
|
111
|
+
"{workspaceRoot}/jest.config.[jt]s",
|
|
112
|
+
"{projectRoot}/**/*.(spec|test)(.e2e)?.[jt]sx?",
|
|
113
|
+
"{projectRoot}/**/e2e/**/*.[jt]sx?",
|
|
114
|
+
{
|
|
115
|
+
"externalDependencies": ["jest"]
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"plugins": [
|
|
120
|
+
{
|
|
121
|
+
"plugin": "@nx/js/typescript",
|
|
122
|
+
"options": {
|
|
123
|
+
"typecheck": {
|
|
124
|
+
"targetName": "typecheck"
|
|
125
|
+
},
|
|
126
|
+
"build": false
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"plugin": "@nx/jest/plugin",
|
|
131
|
+
"options": {
|
|
132
|
+
"targetName": "test",
|
|
133
|
+
"ciTargetName": "test-ci"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"tasksRunnerOptions": {
|
|
138
|
+
"default": {
|
|
139
|
+
"options": {
|
|
140
|
+
"useDaemonProcess": false
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"generators": {
|
|
145
|
+
"@nx/angular:library": {
|
|
146
|
+
"linter": "eslint",
|
|
147
|
+
"unitTestRunner": "jest"
|
|
148
|
+
},
|
|
149
|
+
"@nx/angular:component": {
|
|
150
|
+
"style": "scss"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"release": {
|
|
154
|
+
"groups": {
|
|
155
|
+
"libs": {
|
|
156
|
+
"projects": ["libs/*"]
|
|
157
|
+
},
|
|
158
|
+
"apps": {
|
|
159
|
+
"projects": ["apps/*"],
|
|
160
|
+
"changelog": {
|
|
161
|
+
"projectChangelogs": {
|
|
162
|
+
"createRelease": "github"
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"projectsRelationship": "independent",
|
|
168
|
+
"version": {
|
|
169
|
+
"conventionalCommits": true,
|
|
170
|
+
"updateDependents": "always",
|
|
171
|
+
"preVersionCommand": "pnpm nx run-many -t build",
|
|
172
|
+
"manifestRootsToUpdate": [
|
|
173
|
+
"{projectRoot}",
|
|
174
|
+
{
|
|
175
|
+
"path": "{projectRoot}/dist",
|
|
176
|
+
"preserveLocalDependencyProtocols": false
|
|
177
|
+
}
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"releaseTag": {
|
|
181
|
+
"pattern": "{projectName}@{version}"
|
|
182
|
+
},
|
|
183
|
+
"changelog": {
|
|
184
|
+
"projectChangelogs": true
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
"sync": {
|
|
188
|
+
"applyChanges": false
|
|
189
|
+
}
|
|
190
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@impactor/nest",
|
|
3
|
+
"version": "3.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "utils for NestJs. Automatically generate APIs and crud operators for NestJs apps",
|
|
6
|
+
"private": false,
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"access": "public"
|
|
9
|
+
},
|
|
10
|
+
"nx": {
|
|
11
|
+
"projectType": "library",
|
|
12
|
+
"targets": {
|
|
13
|
+
"build": {},
|
|
14
|
+
"semantic-release": {}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"imports": {
|
|
18
|
+
"#*": "./src/*.js"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./index.d.js",
|
|
23
|
+
"default": "./index.js"
|
|
24
|
+
},
|
|
25
|
+
"./package.json": {
|
|
26
|
+
"default": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
"./*": "./src/*"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"crud",
|
|
32
|
+
"NestJs",
|
|
33
|
+
"nodejs",
|
|
34
|
+
"javascript",
|
|
35
|
+
"js"
|
|
36
|
+
],
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@nestjs/cli": "^11.0.16",
|
|
39
|
+
"@nestjs/common": "^11.1.12",
|
|
40
|
+
"@nestjs/config": "^4.0.2",
|
|
41
|
+
"@nestjs/core": "^11.1.12",
|
|
42
|
+
"@nestjs/microservices": "^11.1.12",
|
|
43
|
+
"@nestjs/platform-express": "^11.1.12",
|
|
44
|
+
"@nestjs/platform-fastify": "^11.1.12",
|
|
45
|
+
"@nestjs/swagger": "^11.2.5",
|
|
46
|
+
"@nestjs/testing": "^11.1.12",
|
|
47
|
+
"@nestjs/typeorm": "^11.0.0",
|
|
48
|
+
"@nestjs/websockets": "^11.1.12",
|
|
49
|
+
"amqplib": "^0.10.9",
|
|
50
|
+
"class-validator": "^0.14.3",
|
|
51
|
+
"fastify": "^5.7.1",
|
|
52
|
+
"nest-winston": "^1.10.2",
|
|
53
|
+
"rxjs": "^7.8.2",
|
|
54
|
+
"tslib": "^2.8.1",
|
|
55
|
+
"typeorm": "^0.3.28",
|
|
56
|
+
"winston": "^3.19.0",
|
|
57
|
+
"@fastify/multipart": "^9.3.0",
|
|
58
|
+
"@impactor/javascript": "3.0.2",
|
|
59
|
+
"@impactor/nodejs": "3.0.2",
|
|
60
|
+
"@nestjs/passport": "^11.0.5",
|
|
61
|
+
"merge-anything": "^6.0.6",
|
|
62
|
+
"reflect-metadata": "^0.2.2"
|
|
63
|
+
},
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@types/amqplib": "^0.10.8",
|
|
66
|
+
"tsx": "^4.21.0",
|
|
67
|
+
"@nestjs/cli": "^11.0.16",
|
|
68
|
+
"@nestjs/platform-fastify": "^11.1.12",
|
|
69
|
+
"@swc/cli": "^0.7.10",
|
|
70
|
+
"@swc/core": "^1.15.8",
|
|
71
|
+
"@types/node": "^25.0.9",
|
|
72
|
+
"typescript": "^5.9.3",
|
|
73
|
+
"semantic-release": "^25.0.2",
|
|
74
|
+
"semantic-release-monorepo": "^8.0.2"
|
|
75
|
+
},
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": "^18.19.1 || ^20.11.1 || >=22.0.0"
|
|
78
|
+
},
|
|
79
|
+
"repository": {
|
|
80
|
+
"type": "git",
|
|
81
|
+
"url": "https://github.com/its-dibo/dibo.git"
|
|
82
|
+
},
|
|
83
|
+
"author": "Sherif Eldeeb <sh.eldeeb.2010+github@gmail.com> (https://github.com/its-dibo)",
|
|
84
|
+
"homepage": "https://github.com/its-dibo/dibo#readme",
|
|
85
|
+
"bugs": {
|
|
86
|
+
"url": "https://github.com/its-dibo/dibo/issues",
|
|
87
|
+
"email": "sh.eldeeb.2010+github@gmail.com"
|
|
88
|
+
},
|
|
89
|
+
"license": "MIT",
|
|
90
|
+
"contributors": [],
|
|
91
|
+
"funding": [
|
|
92
|
+
{
|
|
93
|
+
"type": "paypal",
|
|
94
|
+
"url": "https://paypal.me/group99001"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "patreon",
|
|
98
|
+
"url": "https://www.patreon.com/GoogleDev"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"scripts": {}
|
|
102
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ValidationPipeOptions, type VersioningOptions } from '@nestjs/common';
|
|
2
|
+
import type { GlobalPrefixOptions, NestApplicationOptions } from '@nestjs/common/interfaces';
|
|
3
|
+
import { NestExpressApplication } from '@nestjs/platform-express';
|
|
4
|
+
import { NestFastifyApplication } from '@nestjs/platform-fastify/interfaces';
|
|
5
|
+
import { OpenAPIObject } from '@nestjs/swagger';
|
|
6
|
+
export type IApp = NestFastifyApplication | NestExpressApplication;
|
|
7
|
+
export interface IPrefix extends GlobalPrefixOptions {
|
|
8
|
+
prefix: string;
|
|
9
|
+
}
|
|
10
|
+
export interface IAppConfig extends NestApplicationOptions {
|
|
11
|
+
port?: string | number;
|
|
12
|
+
prefix?: string | IPrefix;
|
|
13
|
+
versioning?: VersioningOptions;
|
|
14
|
+
swagger?: Partial<Omit<OpenAPIObject, 'paths'>>;
|
|
15
|
+
multipart?: boolean;
|
|
16
|
+
validationPipe?: ValidationPipeOptions;
|
|
17
|
+
package?: string | Record<string, unknown>;
|
|
18
|
+
onServerRun?: (app: IApp) => void | Promise<void>;
|
|
19
|
+
onServerError?: (error: Error, app: IApp) => void | Promise<void>;
|
|
20
|
+
}
|
|
21
|
+
export declare const appConfig: IAppConfig;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "appConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return appConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _logger = require("../utils/logger");
|
|
12
|
+
const _common = require("@nestjs/common");
|
|
13
|
+
const appConfig = {
|
|
14
|
+
port: process.env.PORT,
|
|
15
|
+
prefix: {
|
|
16
|
+
prefix: 'api',
|
|
17
|
+
exclude: [
|
|
18
|
+
'sitemap.xml',
|
|
19
|
+
'robots.txt'
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
// or use `DocumentBuilder` from "@nestjs/swagger"
|
|
23
|
+
swagger: {
|
|
24
|
+
openapi: '3.1.0',
|
|
25
|
+
info: {
|
|
26
|
+
title: 'API',
|
|
27
|
+
version: '1.0'
|
|
28
|
+
},
|
|
29
|
+
components: {
|
|
30
|
+
securitySchemes: {
|
|
31
|
+
// add `@ApiBearerAuth()` to controllers which you need to check their bearer auth header
|
|
32
|
+
bearer: {
|
|
33
|
+
scheme: 'bearer',
|
|
34
|
+
bearerFormat: 'JWT',
|
|
35
|
+
type: 'http'
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
versioning: {
|
|
41
|
+
defaultVersion: [
|
|
42
|
+
'1.0'
|
|
43
|
+
],
|
|
44
|
+
type: _common.VersioningType.URI
|
|
45
|
+
},
|
|
46
|
+
// cors: {
|
|
47
|
+
// // todo: add APP_URL or localhost by default
|
|
48
|
+
// origin: '*',
|
|
49
|
+
// methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
|
|
50
|
+
// allowedHeaders: '*',
|
|
51
|
+
// },
|
|
52
|
+
onServerRun: async (app)=>{
|
|
53
|
+
_logger.logger.log(`running at ${await app.getUrl()}`);
|
|
54
|
+
_logger.logger.log(`Env: ${process.env.NODE_ENV}`);
|
|
55
|
+
if (process.env.DB_NAME) {
|
|
56
|
+
_logger.logger.log(`database: ${process.env.DB_NAME}@${process.env.DB_HOST || 'localhost'}`);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
onServerError: (error, _app)=>{
|
|
60
|
+
_logger.logger.error(`Server failed to run`);
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/configs/app.ts"],"sourcesContent":["import { logger } from '../utils/logger';\nimport {\n ValidationPipeOptions,\n type VersioningOptions,\n VersioningType,\n} from '@nestjs/common';\nimport type {\n GlobalPrefixOptions,\n NestApplicationOptions,\n} from '@nestjs/common/interfaces';\nimport { NestExpressApplication } from '@nestjs/platform-express';\nimport { NestFastifyApplication } from '@nestjs/platform-fastify/interfaces';\nimport { OpenAPIObject } from '@nestjs/swagger';\n\nexport type IApp = NestFastifyApplication | NestExpressApplication;\nexport interface IPrefix extends GlobalPrefixOptions {\n prefix: string;\n}\n\n// todo: adaptor: fastify | express = fastify\nexport interface IAppConfig extends NestApplicationOptions {\n /**\n * The port that the app will listen to\n * if not provided, `app.listen()` is not called\n */\n port?: string | number;\n /** the global prefix for every HTTP route path. see Nest.setGlobalPrefix() */\n prefix?: string | IPrefix;\n versioning?: VersioningOptions;\n /**\n * Swagger API spec.\n * https://spec.openapis.org/oas\n */\n swagger?: Partial<Omit<OpenAPIObject, 'paths'>>;\n /** whether to enable parsing multiPart */\n multipart?: boolean;\n /**\n * validation pipe options\n */\n validationPipe?: ValidationPipeOptions;\n /**\n * package.json absolute path or object, or the path of the project root dir\n * used to extract info for Swagger docs, such as title, description, and version.\n */\n // todo: import IPackage interface from @impactor/javascript (move from @impactor/nx-manager)\n package?: string | Record<string, unknown>;\n /**\n * a hook that executed when the server runs and listens to the specified port\n * get the server by app.getHttpServer()\n */\n onServerRun?: (app: IApp) => void | Promise<void>;\n onServerError?: (error: Error, app: IApp) => void | Promise<void>;\n}\n\n/**\n * the default app configs\n */\nexport const appConfig: IAppConfig = {\n port: process.env.PORT,\n prefix: { prefix: 'api', exclude: ['sitemap.xml', 'robots.txt'] },\n // or use `DocumentBuilder` from \"@nestjs/swagger\"\n swagger: {\n openapi: '3.1.0',\n info: { title: 'API', version: '1.0' },\n components: {\n securitySchemes: {\n // add `@ApiBearerAuth()` to controllers which you need to check their bearer auth header\n bearer: {\n scheme: 'bearer',\n bearerFormat: 'JWT',\n type: 'http',\n },\n },\n },\n },\n versioning: {\n defaultVersion: ['1.0'],\n type: VersioningType.URI,\n },\n // cors: {\n // // todo: add APP_URL or localhost by default\n // origin: '*',\n // methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',\n // allowedHeaders: '*',\n // },\n onServerRun: async (app) => {\n logger.log(`running at ${await app.getUrl()}`);\n logger.log(`Env: ${process.env.NODE_ENV}`);\n if (process.env.DB_NAME) {\n logger.log(\n `database: ${process.env.DB_NAME}@${process.env.DB_HOST || 'localhost'}`,\n );\n }\n },\n onServerError: (error, _app) => {\n logger.error(`Server failed to run`);\n throw error;\n },\n};\n"],"names":["appConfig","port","process","env","PORT","prefix","exclude","swagger","openapi","info","title","version","components","securitySchemes","bearer","scheme","bearerFormat","type","versioning","defaultVersion","VersioningType","URI","onServerRun","app","logger","log","getUrl","NODE_ENV","DB_NAME","DB_HOST","onServerError","error","_app"],"mappings":";;;;+BAyDaA;;;eAAAA;;;wBAzDU;wBAKhB;AAoDA,MAAMA,YAAwB;IACnCC,MAAMC,QAAQC,GAAG,CAACC,IAAI;IACtBC,QAAQ;QAAEA,QAAQ;QAAOC,SAAS;YAAC;YAAe;SAAa;IAAC;IAChE,kDAAkD;IAClDC,SAAS;QACPC,SAAS;QACTC,MAAM;YAAEC,OAAO;YAAOC,SAAS;QAAM;QACrCC,YAAY;YACVC,iBAAiB;gBACf,yFAAyF;gBACzFC,QAAQ;oBACNC,QAAQ;oBACRC,cAAc;oBACdC,MAAM;gBACR;YACF;QACF;IACF;IACAC,YAAY;QACVC,gBAAgB;YAAC;SAAM;QACvBF,MAAMG,sBAAc,CAACC,GAAG;IAC1B;IACA,UAAU;IACV,iDAAiD;IACjD,iBAAiB;IACjB,+CAA+C;IAC/C,yBAAyB;IACzB,KAAK;IACLC,aAAa,OAAOC;QAClBC,cAAM,CAACC,GAAG,CAAC,CAAC,WAAW,EAAE,MAAMF,IAAIG,MAAM,IAAI;QAC7CF,cAAM,CAACC,GAAG,CAAC,CAAC,KAAK,EAAEvB,QAAQC,GAAG,CAACwB,QAAQ,EAAE;QACzC,IAAIzB,QAAQC,GAAG,CAACyB,OAAO,EAAE;YACvBJ,cAAM,CAACC,GAAG,CACR,CAAC,UAAU,EAAEvB,QAAQC,GAAG,CAACyB,OAAO,CAAC,CAAC,EAAE1B,QAAQC,GAAG,CAAC0B,OAAO,IAAI,aAAa;QAE5E;IACF;IACAC,eAAe,CAACC,OAAOC;QACrBR,cAAM,CAACO,KAAK,CAAC,CAAC,oBAAoB,CAAC;QACnC,MAAMA;IACR;AACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "typeORMConfigs", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return typeORMConfigs;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const typeORMConfigs = {
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
type: process.env.DB_TYPE ?? 'postgres',
|
|
14
|
+
host: process.env.DB_HOST ?? 'localhost',
|
|
15
|
+
username: process.env.DB_USER ?? 'postgres',
|
|
16
|
+
password: process.env.DB_PASSWORD,
|
|
17
|
+
database: process.env.DB_NAME,
|
|
18
|
+
// TODO: this should be disabled in prod to prevent the db data from being lost
|
|
19
|
+
synchronize: true,
|
|
20
|
+
autoLoadEntities: true
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/configs/database.ts"],"sourcesContent":["import { type DataSourceOptions } from 'typeorm';\n\nexport const typeORMConfigs: DataSourceOptions = {\n // @ts-ignore\n type: process.env.DB_TYPE ?? 'postgres',\n host: process.env.DB_HOST ?? 'localhost',\n username: process.env.DB_USER ?? 'postgres',\n password: process.env.DB_PASSWORD,\n database: process.env.DB_NAME,\n // TODO: this should be disabled in prod to prevent the db data from being lost\n synchronize: true,\n autoLoadEntities: true,\n};\n"],"names":["typeORMConfigs","type","process","env","DB_TYPE","host","DB_HOST","username","DB_USER","password","DB_PASSWORD","database","DB_NAME","synchronize","autoLoadEntities"],"mappings":";;;;+BAEaA;;;eAAAA;;;AAAN,MAAMA,iBAAoC;IAC/C,aAAa;IACbC,MAAMC,QAAQC,GAAG,CAACC,OAAO,IAAI;IAC7BC,MAAMH,QAAQC,GAAG,CAACG,OAAO,IAAI;IAC7BC,UAAUL,QAAQC,GAAG,CAACK,OAAO,IAAI;IACjCC,UAAUP,QAAQC,GAAG,CAACO,WAAW;IACjCC,UAAUT,QAAQC,GAAG,CAACS,OAAO;IAC7B,+EAA+E;IAC/EC,aAAa;IACbC,kBAAkB;AACpB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MicroserviceOptions } from '@nestjs/microservices';
|
|
2
|
+
import { INestMicroservice } from '@nestjs/common';
|
|
3
|
+
export type IMicroserviceOptions = MicroserviceOptions & {
|
|
4
|
+
onServerRun?: (app: INestMicroservice) => void | Promise<void>;
|
|
5
|
+
onServerError?: (error: Error, app: INestMicroservice) => void | Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export declare const microserviceOptions: IMicroserviceOptions;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "microserviceOptions", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return microserviceOptions;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _logger = require("../utils/logger");
|
|
12
|
+
const microserviceOptions = {
|
|
13
|
+
onServerRun: (_app)=>{
|
|
14
|
+
_logger.logger.log(`running `);
|
|
15
|
+
_logger.logger.log(`Env: ${process.env.NODE_ENV}`);
|
|
16
|
+
if (process.env.DB_NAME) {
|
|
17
|
+
_logger.logger.log(`database: ${process.env.DB_NAME}@${process.env.DB_HOST || 'localhost'}`);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
onServerError: (error, _app)=>{
|
|
21
|
+
_logger.logger.error(`Server failed to run`);
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=microservice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/configs/microservice.ts"],"sourcesContent":["import { MicroserviceOptions } from '@nestjs/microservices';\nimport { logger } from '../utils/logger';\nimport { INestMicroservice } from '@nestjs/common';\n\nexport type IMicroserviceOptions = MicroserviceOptions & {\n onServerRun?: (app: INestMicroservice) => void | Promise<void>;\n onServerError?: (\n error: Error,\n app: INestMicroservice,\n ) => void | Promise<void>;\n};\n\nexport const microserviceOptions: IMicroserviceOptions = {\n onServerRun: (_app) => {\n logger.log(`running `);\n logger.log(`Env: ${process.env.NODE_ENV}`);\n if (process.env.DB_NAME) {\n logger.log(\n `database: ${process.env.DB_NAME}@${process.env.DB_HOST || 'localhost'}`,\n );\n }\n },\n onServerError: (error, _app) => {\n logger.error(`Server failed to run`);\n throw error;\n },\n};\n"],"names":["microserviceOptions","onServerRun","_app","logger","log","process","env","NODE_ENV","DB_NAME","DB_HOST","onServerError","error"],"mappings":";;;;+BAYaA;;;eAAAA;;;wBAXU;AAWhB,MAAMA,sBAA4C;IACvDC,aAAa,CAACC;QACZC,cAAM,CAACC,GAAG,CAAC,CAAC,QAAQ,CAAC;QACrBD,cAAM,CAACC,GAAG,CAAC,CAAC,KAAK,EAAEC,QAAQC,GAAG,CAACC,QAAQ,EAAE;QACzC,IAAIF,QAAQC,GAAG,CAACE,OAAO,EAAE;YACvBL,cAAM,CAACC,GAAG,CACR,CAAC,UAAU,EAAEC,QAAQC,GAAG,CAACE,OAAO,CAAC,CAAC,EAAEH,QAAQC,GAAG,CAACG,OAAO,IAAI,aAAa;QAE5E;IACF;IACAC,eAAe,CAACC,OAAOT;QACrBC,cAAM,CAACQ,KAAK,CAAC,CAAC,oBAAoB,CAAC;QACnC,MAAMA;IACR;AACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type CustomTransportStrategy, Server } from '@nestjs/microservices';
|
|
2
|
+
import { Logger } from '@nestjs/common';
|
|
3
|
+
import { type Channel, type ChannelModel } from 'amqplib';
|
|
4
|
+
import { ConfigService } from '@nestjs/config';
|
|
5
|
+
export interface MultiQueueOptions {
|
|
6
|
+
connection: ChannelModel | string;
|
|
7
|
+
queues: string[];
|
|
8
|
+
channel?: Channel;
|
|
9
|
+
}
|
|
10
|
+
export interface MultiQueueConfigs extends Omit<Required<MultiQueueOptions>, 'connection'> {
|
|
11
|
+
connection: ChannelModel;
|
|
12
|
+
}
|
|
13
|
+
export declare class MultiQueueRabbitMQServer extends Server implements CustomTransportStrategy {
|
|
14
|
+
private readonly configService;
|
|
15
|
+
protected readonly logger: Logger;
|
|
16
|
+
private options;
|
|
17
|
+
private _configs;
|
|
18
|
+
constructor(configService: ConfigService);
|
|
19
|
+
get configs(): MultiQueueConfigs;
|
|
20
|
+
listen(callback: () => void): Promise<void>;
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
on(_event: string, _callback: Function): void;
|
|
23
|
+
unwrap<T = never>(): T;
|
|
24
|
+
}
|