@rsdk/grpc.clients 2.1.0 → 2.3.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/CHANGELOG.md +6 -0
- package/dist/servers/grpc.servers.d.ts +3 -2
- package/dist/servers/grpc.servers.js +18 -12
- package/dist/servers/grpc.servers.js.map +1 -1
- package/dist/servers/types.d.ts +8 -6
- package/package.json +2 -2
- package/src/servers/grpc.servers.ts +36 -19
- package/src/servers/types.ts +19 -14
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.3.0](https://github.com/R-Vision/rsdk/compare/v2.2.1...v2.3.0) (2023-06-08)
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* added option define for one server and update docs ([970e1f3](https://github.com/R-Vision/rsdk/commit/970e1f3104c45bf6c1102c32afc1750e2f7e299b))
|
|
11
|
+
|
|
6
12
|
# [2.1.0](https://github.com/R-Vision/rsdk/compare/v2.0.0...v2.1.0) (2023-06-06)
|
|
7
13
|
|
|
8
14
|
### Features
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { GrpcServerDeclaration, GrpcServerDefinition, GrpcServerMap } from './types';
|
|
1
|
+
import type { GrpcServerDeclaration, GrpcServerDefinition, GrpcServerMap, GrpcServiceDeclaration, GrpcServiceMap } from './types';
|
|
2
2
|
export declare class GrpcServers {
|
|
3
|
-
static define<
|
|
3
|
+
static define<TGrpcServerDeclaration extends GrpcServerDeclaration>(declaration: TGrpcServerDeclaration): GrpcServerMap<TGrpcServerDeclaration>;
|
|
4
|
+
static defineForServer<TServerName extends string, TGrpcServiceDeclaration extends GrpcServiceDeclaration>(serverName: TServerName, declaration: TGrpcServiceDeclaration): GrpcServiceMap<TServerName, TGrpcServiceDeclaration>;
|
|
4
5
|
static extractDefinition<TKeyDeclaration extends GrpcServerDeclaration, TKeyMap extends GrpcServerMap<TKeyDeclaration> = GrpcServerMap<TKeyDeclaration>>(keyMap: TKeyMap): GrpcServerDefinition[];
|
|
5
6
|
}
|
|
@@ -3,20 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.GrpcServers = void 0;
|
|
4
4
|
class GrpcServers {
|
|
5
5
|
static define(declaration) {
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
const serverMapping = Object.entries(declaration).map(([serverName, serviceMap]) => {
|
|
7
|
+
return [
|
|
8
|
+
serverName,
|
|
9
|
+
GrpcServers.defineForServer(serverName, serviceMap),
|
|
10
|
+
];
|
|
11
|
+
});
|
|
12
|
+
return Object.fromEntries(serverMapping);
|
|
13
|
+
}
|
|
14
|
+
static defineForServer(serverName, declaration) {
|
|
15
|
+
const serviceMapping = Object.entries(declaration).map(([serviceName, definition]) => {
|
|
16
|
+
return [
|
|
17
|
+
serviceName,
|
|
18
|
+
{
|
|
19
|
+
serverName,
|
|
9
20
|
serviceName,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
definition,
|
|
14
|
-
},
|
|
15
|
-
];
|
|
16
|
-
});
|
|
17
|
-
return [serverName, Object.fromEntries(map)];
|
|
21
|
+
definition,
|
|
22
|
+
},
|
|
23
|
+
];
|
|
18
24
|
});
|
|
19
|
-
return Object.fromEntries(
|
|
25
|
+
return Object.fromEntries(serviceMapping);
|
|
20
26
|
}
|
|
21
27
|
static extractDefinition(keyMap) {
|
|
22
28
|
const definitions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc.servers.js","sourceRoot":"","sources":["../../src/servers/grpc.servers.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"grpc.servers.js","sourceRoot":"","sources":["../../src/servers/grpc.servers.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IACtB,MAAM,CAAC,MAAM,CACX,WAAmC;QAEnC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CACnD,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE;YAC3B,OAAO;gBACL,UAAU;gBACV,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC;aACpD,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,eAAe,CAIpB,UAAuB,EACvB,WAAoC;QAEpC,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CACpD,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,EAAE;YAC5B,OAAO;gBACL,WAAW;gBACX;oBACE,UAAU;oBACV,WAAW;oBACX,UAAU;iBACX;aACF,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,OAAO,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,iBAAiB,CAGtB,MAAe;QACf,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;gBAC7C,WAAW,CAAC,IAAI,CAAC,KAA6B,CAAC,CAAC;aACjD;SACF;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AApDD,kCAoDC"}
|
package/dist/servers/types.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
|
|
2
2
|
import type { Opaque } from 'type-fest';
|
|
3
|
+
export type GrpcServiceDeclaration = {
|
|
4
|
+
[serviceName: string]: CompatServiceDefinition;
|
|
5
|
+
};
|
|
3
6
|
export interface GrpcServerDeclaration {
|
|
4
|
-
[serverName: string]:
|
|
5
|
-
[serviceName: string]: CompatServiceDefinition;
|
|
6
|
-
};
|
|
7
|
+
[serverName: string]: GrpcServiceDeclaration;
|
|
7
8
|
}
|
|
8
9
|
export type GrpcServerDeclarationValue<TServerName extends string, TServiceName extends string, TServiceDefinition extends CompatServiceDefinition> = Opaque<{
|
|
9
10
|
serverName: TServerName;
|
|
10
11
|
serviceName: TServiceName;
|
|
11
12
|
definition: TServiceDefinition;
|
|
12
13
|
}>;
|
|
14
|
+
export type GrpcServiceMap<serverName extends string, T extends GrpcServiceDeclaration> = {
|
|
15
|
+
[serviceName in keyof T]: serverName extends string ? serviceName extends string ? GrpcServerDeclarationValue<serverName, serviceName, T[serviceName]> : never : never;
|
|
16
|
+
};
|
|
13
17
|
export type GrpcServerMap<T extends GrpcServerDeclaration> = {
|
|
14
|
-
[serverName in keyof T]:
|
|
15
|
-
[serviceName in keyof T[serverName]]: serverName extends string ? serviceName extends string ? GrpcServerDeclarationValue<serverName, serviceName, T[serverName][serviceName]> : never : never;
|
|
16
|
-
};
|
|
18
|
+
[serverName in keyof T]: serverName extends string ? GrpcServiceMap<serverName, T[serverName]> : never;
|
|
17
19
|
};
|
|
18
20
|
export type GrpcServerDefinition = {
|
|
19
21
|
serviceName: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/grpc.clients",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Grpc clients infrastructure",
|
|
5
5
|
"license": "Apache License 2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -24,5 +24,5 @@
|
|
|
24
24
|
"nice-grpc-opentelemetry": "^0.1.2",
|
|
25
25
|
"rxjs": "^7.0.0"
|
|
26
26
|
},
|
|
27
|
-
"gitHead": "
|
|
27
|
+
"gitHead": "0c41ea55a21400e586c0793a6aca57a0360f5857"
|
|
28
28
|
}
|
|
@@ -2,30 +2,47 @@ import type {
|
|
|
2
2
|
GrpcServerDeclaration,
|
|
3
3
|
GrpcServerDefinition,
|
|
4
4
|
GrpcServerMap,
|
|
5
|
+
GrpcServiceDeclaration,
|
|
6
|
+
GrpcServiceMap,
|
|
5
7
|
} from './types';
|
|
6
8
|
|
|
7
9
|
export class GrpcServers {
|
|
8
|
-
static define<
|
|
9
|
-
declaration:
|
|
10
|
-
): GrpcServerMap<
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
);
|
|
10
|
+
static define<TGrpcServerDeclaration extends GrpcServerDeclaration>(
|
|
11
|
+
declaration: TGrpcServerDeclaration,
|
|
12
|
+
): GrpcServerMap<TGrpcServerDeclaration> {
|
|
13
|
+
const serverMapping = Object.entries(declaration).map(
|
|
14
|
+
([serverName, serviceMap]) => {
|
|
15
|
+
return [
|
|
16
|
+
serverName,
|
|
17
|
+
GrpcServers.defineForServer(serverName, serviceMap),
|
|
18
|
+
];
|
|
19
|
+
},
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
return Object.fromEntries(serverMapping);
|
|
23
|
+
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
static defineForServer<
|
|
26
|
+
TServerName extends string,
|
|
27
|
+
TGrpcServiceDeclaration extends GrpcServiceDeclaration,
|
|
28
|
+
>(
|
|
29
|
+
serverName: TServerName,
|
|
30
|
+
declaration: TGrpcServiceDeclaration,
|
|
31
|
+
): GrpcServiceMap<TServerName, TGrpcServiceDeclaration> {
|
|
32
|
+
const serviceMapping = Object.entries(declaration).map(
|
|
33
|
+
([serviceName, definition]) => {
|
|
34
|
+
return [
|
|
35
|
+
serviceName,
|
|
36
|
+
{
|
|
37
|
+
serverName,
|
|
38
|
+
serviceName,
|
|
39
|
+
definition,
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
},
|
|
43
|
+
);
|
|
27
44
|
|
|
28
|
-
return Object.fromEntries(
|
|
45
|
+
return Object.fromEntries(serviceMapping);
|
|
29
46
|
}
|
|
30
47
|
|
|
31
48
|
static extractDefinition<
|
package/src/servers/types.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { CompatServiceDefinition } from 'nice-grpc/lib/service-definitions';
|
|
2
2
|
import type { Opaque } from 'type-fest';
|
|
3
3
|
|
|
4
|
+
export type GrpcServiceDeclaration = {
|
|
5
|
+
[serviceName: string]: CompatServiceDefinition;
|
|
6
|
+
};
|
|
7
|
+
|
|
4
8
|
export interface GrpcServerDeclaration {
|
|
5
|
-
[serverName: string]:
|
|
6
|
-
[serviceName: string]: CompatServiceDefinition;
|
|
7
|
-
};
|
|
9
|
+
[serverName: string]: GrpcServiceDeclaration;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
export type GrpcServerDeclarationValue<
|
|
@@ -17,18 +19,21 @@ export type GrpcServerDeclarationValue<
|
|
|
17
19
|
definition: TServiceDefinition;
|
|
18
20
|
}>;
|
|
19
21
|
|
|
22
|
+
export type GrpcServiceMap<
|
|
23
|
+
serverName extends string,
|
|
24
|
+
T extends GrpcServiceDeclaration,
|
|
25
|
+
> = {
|
|
26
|
+
[serviceName in keyof T]: serverName extends string
|
|
27
|
+
? serviceName extends string
|
|
28
|
+
? GrpcServerDeclarationValue<serverName, serviceName, T[serviceName]>
|
|
29
|
+
: never
|
|
30
|
+
: never;
|
|
31
|
+
};
|
|
32
|
+
|
|
20
33
|
export type GrpcServerMap<T extends GrpcServerDeclaration> = {
|
|
21
|
-
[serverName in keyof T]:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
? GrpcServerDeclarationValue<
|
|
25
|
-
serverName,
|
|
26
|
-
serviceName,
|
|
27
|
-
T[serverName][serviceName]
|
|
28
|
-
>
|
|
29
|
-
: never
|
|
30
|
-
: never;
|
|
31
|
-
};
|
|
34
|
+
[serverName in keyof T]: serverName extends string
|
|
35
|
+
? GrpcServiceMap<serverName, T[serverName]>
|
|
36
|
+
: never;
|
|
32
37
|
};
|
|
33
38
|
export type GrpcServerDefinition = {
|
|
34
39
|
serviceName: string;
|