@ubs-platform/nest-microservice-setup-util 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintrc.json +25 -0
- package/README.md +3 -0
- package/jest.config.ts +11 -0
- package/package.json +22 -0
- package/project.json +24 -0
- package/src/index.ts +1 -0
- package/src/lib/nest-microservice-setup-util.ts +56 -0
- package/tsconfig.json +16 -0
- package/tsconfig.lib.json +11 -0
- package/tsconfig.spec.json +14 -0
package/.eslintrc.json
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"extends": ["../../.eslintrc.base.json"],
|
3
|
+
"ignorePatterns": ["!**/*"],
|
4
|
+
"overrides": [
|
5
|
+
{
|
6
|
+
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
|
7
|
+
"rules": {}
|
8
|
+
},
|
9
|
+
{
|
10
|
+
"files": ["*.ts", "*.tsx"],
|
11
|
+
"rules": {}
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"files": ["*.js", "*.jsx"],
|
15
|
+
"rules": {}
|
16
|
+
},
|
17
|
+
{
|
18
|
+
"files": ["*.json"],
|
19
|
+
"parser": "jsonc-eslint-parser",
|
20
|
+
"rules": {
|
21
|
+
"@nx/dependency-checks": "error"
|
22
|
+
}
|
23
|
+
}
|
24
|
+
]
|
25
|
+
}
|
package/README.md
ADDED
package/jest.config.ts
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
/* eslint-disable */
|
2
|
+
export default {
|
3
|
+
displayName: 'nest-microservice-setup-util',
|
4
|
+
preset: '../../jest.preset.js',
|
5
|
+
testEnvironment: 'node',
|
6
|
+
transform: {
|
7
|
+
'^.+\\.[tj]s$': ['ts-jest', { tsconfig: '<rootDir>/tsconfig.spec.json' }],
|
8
|
+
},
|
9
|
+
moduleFileExtensions: ['ts', 'js', 'html'],
|
10
|
+
coverageDirectory: '../../coverage/libs/nest-microservice-setup-util',
|
11
|
+
};
|
package/package.json
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"name": "@ubs-platform/nest-microservice-setup-util",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"private": false,
|
5
|
+
"scripts": {
|
6
|
+
"build": "tsc",
|
7
|
+
"publish": "npm run build && echo 'not yet'"
|
8
|
+
},
|
9
|
+
"peerDependencies": {
|
10
|
+
"@nestjs/microservices": "^10.3.3"
|
11
|
+
},
|
12
|
+
"dependencies": {
|
13
|
+
"tslib": "^2.3.0"
|
14
|
+
},
|
15
|
+
"devDependencies": {
|
16
|
+
"typescript": "~5.3.2",
|
17
|
+
"@types/node": "~18.16.9"
|
18
|
+
},
|
19
|
+
"publishConfig": {
|
20
|
+
"access": "public"
|
21
|
+
}
|
22
|
+
}
|
package/project.json
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"name": "nest-microservice-setup-util",
|
3
|
+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
4
|
+
"sourceRoot": "libs/nest-microservice-setup-util/src",
|
5
|
+
"projectType": "library",
|
6
|
+
"targets": {
|
7
|
+
"build": {
|
8
|
+
"executor": "@nx/js:tsc",
|
9
|
+
"outputs": ["{options.outputPath}"],
|
10
|
+
"options": {
|
11
|
+
"outputPath": "dist/libs/nest-microservice-setup-util",
|
12
|
+
"tsConfig": "libs/nest-microservice-setup-util/tsconfig.lib.json",
|
13
|
+
"packageJson": "libs/nest-microservice-setup-util/package.json",
|
14
|
+
"main": "libs/nest-microservice-setup-util/src/index.ts",
|
15
|
+
"assets": ["libs/nest-microservice-setup-util/*.md"]
|
16
|
+
}
|
17
|
+
},
|
18
|
+
"publish": {
|
19
|
+
"command": "node tools/scripts/publish.mjs nest-microservice-setup-util {args.ver} {args.tag}",
|
20
|
+
"dependsOn": ["build"]
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"tags": []
|
24
|
+
}
|
package/src/index.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './lib/nest-microservice-setup-util';
|
@@ -0,0 +1,56 @@
|
|
1
|
+
import { Transport } from '@nestjs/microservices';
|
2
|
+
import { randomUUID } from 'crypto';
|
3
|
+
export const getMicroserviceConnection = (groupName) => {
|
4
|
+
const type = process.env['NX_MICROSERVICE_TYPE'] as 'KAFKA' | 'TCP' | 'RMQ';
|
5
|
+
|
6
|
+
let microservice: Object | null = null;
|
7
|
+
if (type == 'KAFKA') {
|
8
|
+
microservice = {
|
9
|
+
transport: Transport.KAFKA,
|
10
|
+
options: {
|
11
|
+
client: {
|
12
|
+
clientId: 'users',
|
13
|
+
brokers: [`${process.env['NX_KAFKA_URL']}`],
|
14
|
+
},
|
15
|
+
consumer: {
|
16
|
+
groupId: 'tk' + randomUUID(),
|
17
|
+
},
|
18
|
+
},
|
19
|
+
};
|
20
|
+
} else if (type == 'RMQ') {
|
21
|
+
microservice = {
|
22
|
+
transport: Transport.RMQ,
|
23
|
+
options: {
|
24
|
+
urls: [process.env['NX_RMQ_URL']],
|
25
|
+
queue: 'cats_queue',
|
26
|
+
queueOptions: {
|
27
|
+
durable: false,
|
28
|
+
},
|
29
|
+
},
|
30
|
+
};
|
31
|
+
} else {
|
32
|
+
microservice = {
|
33
|
+
transport: Transport.TCP,
|
34
|
+
options: {
|
35
|
+
host: process.env['NX_TCP_HOST'],
|
36
|
+
port: process.env['NX_TCP_PORT'],
|
37
|
+
},
|
38
|
+
};
|
39
|
+
}
|
40
|
+
|
41
|
+
// return {
|
42
|
+
// transport: Transport.TCP,
|
43
|
+
// options: {
|
44
|
+
// host: 'localhost',
|
45
|
+
// port: 7177,
|
46
|
+
// },
|
47
|
+
// };
|
48
|
+
if (microservice == null) {
|
49
|
+
throw 'Microservice type not recognized';
|
50
|
+
}
|
51
|
+
return microservice;
|
52
|
+
};
|
53
|
+
// export const UserMicroserviceCommunication =
|
54
|
+
|
55
|
+
// // More 2 3 kafka clients are needed, comes replication invalid shit error
|
56
|
+
// export const UserMicroserviceCommunication =
|
package/tsconfig.json
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
{
|
2
|
+
"extends": "./tsconfig.json",
|
3
|
+
"compilerOptions": {
|
4
|
+
"module": "commonjs",
|
5
|
+
"outDir": "../../dist/out-tsc",
|
6
|
+
"declaration": true,
|
7
|
+
"types": ["node"]
|
8
|
+
},
|
9
|
+
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"],
|
10
|
+
"include": ["src/**/*.ts"]
|
11
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"extends": "./tsconfig.json",
|
3
|
+
"compilerOptions": {
|
4
|
+
"outDir": "../../dist/out-tsc",
|
5
|
+
"module": "commonjs",
|
6
|
+
"types": ["jest", "node"]
|
7
|
+
},
|
8
|
+
"include": [
|
9
|
+
"jest.config.ts",
|
10
|
+
"src/**/*.test.ts",
|
11
|
+
"src/**/*.spec.ts",
|
12
|
+
"src/**/*.d.ts"
|
13
|
+
]
|
14
|
+
}
|