@spider-mesh/core 2.0.10 → 2.0.11
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/build/src/abstracts/RemoteService.d.ts +11 -11
- package/build/src/abstracts/RemoteService.js +2 -2
- package/build/src/abstracts/RemoteService.js.map +1 -1
- package/build/src/decorators/NestJSLinkMicroservice.d.ts +1 -2
- package/build/src/decorators/NestJSLinkMicroservice.js +2 -2
- package/build/src/decorators/NestJSLinkMicroservice.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ export type RemoteServiceOptions = Partial<RpcOptions<any>> & {
|
|
|
9
9
|
export type Unwrap<T> = Awaited<T> extends Observable<infer U> ? Observable<U> : (T extends Promise<infer V> ? Promise<V> : Promise<T>);
|
|
10
10
|
export type Fallbackable<Fn, FallbackValue = unknown> = Fn extends (...args: infer A) => Observable<infer R> | Promise<infer R> | (infer R) ? ((...args: A) => IsUnknown<FallbackValue, Unwrap<R>, (FallbackValue extends Observable<any> ? FallbackValue : Promise<FallbackValue> | Unwrap<R>)>) : undefined;
|
|
11
11
|
export type FunctionOnly<T, Fallback> = T extends (...args: any[]) => any ? Fallback : never;
|
|
12
|
-
export declare class
|
|
12
|
+
export declare class RemoteServiceLinker<Response> {
|
|
13
13
|
#private;
|
|
14
14
|
private sm;
|
|
15
15
|
private options;
|
|
@@ -20,19 +20,19 @@ export declare class RemoteService<Response> {
|
|
|
20
20
|
get nodes(): (SpiderMeshNode & {
|
|
21
21
|
rpc?: string;
|
|
22
22
|
})[];
|
|
23
|
-
set<Fallback>(options: Omit<Partial<RpcOptions<Fallback>>, 'service' | 'method' | 'args'>):
|
|
24
|
-
node: SpiderMeshNode;
|
|
25
|
-
data: Awaited<ReturnType<Response[key]>>;
|
|
26
|
-
} | {
|
|
27
|
-
node: SpiderMeshNode;
|
|
28
|
-
error: Error;
|
|
29
|
-
}> : never; };
|
|
23
|
+
set<Fallback>(options: Omit<Partial<RpcOptions<Fallback>>, 'service' | 'method' | 'args'>): Mapper<Response, Fallback>;
|
|
30
24
|
wait(check?: ServiceChecker): Promise<true>;
|
|
31
|
-
static link<Service, Fallback = never>(sm: SpiderMesh, options: RemoteServiceOptions):
|
|
25
|
+
static link<Service, Fallback = never>(sm: SpiderMesh, options: RemoteServiceOptions): Mapper<Service, Fallback>;
|
|
26
|
+
}
|
|
27
|
+
export type Mapper<Service, Fallback = unknown> = RemoteServiceLinker<Service> & ({
|
|
28
|
+
[K in keyof Service as FunctionOnly<Service[K], K>]: Fallbackable<Service[K], Fallback>;
|
|
29
|
+
} & {
|
|
30
|
+
[key in keyof Service as FunctionOnly<Service[key], key extends string ? `__batch__${key}` : never>]: Service[key] extends ((...args: any) => any) ? ((...args: Parameters<Service[key]>) => Observable<{
|
|
32
31
|
node: SpiderMeshNode;
|
|
33
32
|
data: Awaited<ReturnType<Service[key]>>;
|
|
34
33
|
} | {
|
|
35
34
|
node: SpiderMeshNode;
|
|
36
35
|
error: Error;
|
|
37
|
-
}>) : never;
|
|
38
|
-
}
|
|
36
|
+
}>) : never;
|
|
37
|
+
});
|
|
38
|
+
export type RemoteService<Service> = Mapper<Service>;
|
|
@@ -21,7 +21,7 @@ const InvaildMethodList = new Set([
|
|
|
21
21
|
'beforeApplicationShutdown',
|
|
22
22
|
'onApplicationShutdown'
|
|
23
23
|
]);
|
|
24
|
-
export class
|
|
24
|
+
export class RemoteServiceLinker {
|
|
25
25
|
sm;
|
|
26
26
|
options;
|
|
27
27
|
constructor(sm, options) {
|
|
@@ -51,7 +51,7 @@ export class RemoteService {
|
|
|
51
51
|
return this.#listRpcNodes();
|
|
52
52
|
}
|
|
53
53
|
set(options) {
|
|
54
|
-
return
|
|
54
|
+
return RemoteServiceLinker.link(this.sm, {
|
|
55
55
|
...this.options,
|
|
56
56
|
...options
|
|
57
57
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteService.js","sourceRoot":"","sources":["../../../src/abstracts/RemoteService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAc,EAAE,EAAE,MAAM,MAAM,CAAC;AAO/F,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAC9B,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,eAAe;IACf,sBAAsB;IACtB,UAAU;IACV,SAAS;IACT,gBAAgB;IAChB,WAAW;IACX,cAAc;IACd,wBAAwB;IACxB,iBAAiB;IACjB,2BAA2B;IAC3B,uBAAuB;CAC1B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"RemoteService.js","sourceRoot":"","sources":["../../../src/abstracts/RemoteService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { RemoteService } from "src/abstracts/RemoteService.js";
|
|
2
1
|
import { SpiderMesh } from "../SpiderMesh.js";
|
|
3
2
|
export declare const NestJSLinkMicroservice: (factory: any) => {
|
|
4
3
|
provide: any;
|
|
5
4
|
inject: (typeof SpiderMesh)[];
|
|
6
|
-
useFactory: (sm: SpiderMesh) => RemoteService<unknown
|
|
5
|
+
useFactory: (sm: SpiderMesh) => import("src/abstracts/RemoteService.js").Mapper<unknown, never>;
|
|
7
6
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RemoteServiceLinker } from "src/abstracts/RemoteService.js";
|
|
2
2
|
import { SpiderMesh } from "../SpiderMesh.js";
|
|
3
3
|
export const NestJSLinkMicroservice = (factory) => ({
|
|
4
4
|
provide: factory,
|
|
5
5
|
inject: [SpiderMesh],
|
|
6
|
-
useFactory: (sm) =>
|
|
6
|
+
useFactory: (sm) => RemoteServiceLinker.link(sm, { service: factory.name })
|
|
7
7
|
});
|
|
8
8
|
//# sourceMappingURL=NestJSLinkMicroservice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NestJSLinkMicroservice.js","sourceRoot":"","sources":["../../../src/decorators/NestJSLinkMicroservice.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NestJSLinkMicroservice.js","sourceRoot":"","sources":["../../../src/decorators/NestJSLinkMicroservice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,CAAC,UAAU,CAAC;IACpB,UAAU,EAAE,CAAC,EAAc,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;CAC1F,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spider-mesh/core",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.11",
|
|
5
5
|
"description": "Lightweight microservice framework for typescript, auto discovery, load-balancing, fault-torrent, multiple transporters",
|
|
6
6
|
"main": "./build/src/index.js",
|
|
7
7
|
"types": "./build/src/index.d.ts",
|