@spider-mesh/core 2.0.41 → 2.0.43
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/README.md +193 -372
- package/build/src/Registry.d.ts +17 -0
- package/build/src/Registry.js +76 -0
- package/build/src/Registry.js.map +1 -0
- package/build/src/RemoteService.d.ts +3 -9
- package/build/src/RemoteService.js +4 -5
- package/build/src/RemoteService.js.map +1 -1
- package/build/src/SpiderMesh.d.ts +8 -19
- package/build/src/SpiderMesh.js +225 -237
- package/build/src/SpiderMesh.js.map +1 -1
- package/build/src/decorators/NestJSLinkMicroservice.d.ts +3 -2
- package/build/src/decorators/NestJSLinkMicroservice.js +2 -5
- package/build/src/decorators/NestJSLinkMicroservice.js.map +1 -1
- package/build/src/index.d.ts +2 -2
- package/build/src/index.js +1 -1
- package/build/src/index.js.map +1 -1
- package/build/src/types.d.ts +17 -14
- package/build/tests/fixtures/process-mesh.d.ts +1 -0
- package/build/tests/fixtures/process-mesh.js +91 -0
- package/build/tests/fixtures/process-mesh.js.map +1 -0
- package/build/tests/mock-e2e.test.d.ts +1 -0
- package/build/tests/mock-e2e.test.js +173 -0
- package/build/tests/mock-e2e.test.js.map +1 -0
- package/build/tests/process-e2e.test.d.ts +1 -0
- package/build/tests/process-e2e.test.js +93 -0
- package/build/tests/process-e2e.test.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/tsconfig.json +1 -3
- package/build/src/helpers/randomUUID.d.ts +0 -1
- package/build/src/helpers/randomUUID.js +0 -13
- package/build/src/helpers/randomUUID.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import type { SpiderMeshNode } from './types.js';
|
|
3
|
+
export type RegistryPickRpcTargetOptions = {
|
|
4
|
+
node_id?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class Registry {
|
|
7
|
+
#private;
|
|
8
|
+
readonly nodes$: BehaviorSubject<Map<string, SpiderMeshNode>>;
|
|
9
|
+
getPeer(nodeId: string): SpiderMeshNode | undefined;
|
|
10
|
+
upsertPeer(node: SpiderMeshNode): SpiderMeshNode;
|
|
11
|
+
removePeer(nodeId: string): boolean;
|
|
12
|
+
listPeers(service?: string): SpiderMeshNode[];
|
|
13
|
+
watch(service?: string): import("rxjs").Observable<SpiderMeshNode[]>;
|
|
14
|
+
pickRpcNode(service: string, options?: RegistryPickRpcTargetOptions): string | null;
|
|
15
|
+
getRpcTransporterName(service: string): string | undefined;
|
|
16
|
+
listTopicNodes(topic: string): SpiderMeshNode[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BehaviorSubject, map } from 'rxjs';
|
|
2
|
+
export class Registry {
|
|
3
|
+
nodes$ = new BehaviorSubject(new Map());
|
|
4
|
+
#transporters = new Map();
|
|
5
|
+
#rrIndexes = new Map();
|
|
6
|
+
getPeer(nodeId) {
|
|
7
|
+
return this.nodes$.value.get(nodeId);
|
|
8
|
+
}
|
|
9
|
+
upsertPeer(node) {
|
|
10
|
+
node.transporters.rpc && Object.keys(node.services).forEach(service => {
|
|
11
|
+
this.#transporters.set(service, node.transporters.rpc);
|
|
12
|
+
});
|
|
13
|
+
const nodes = new Map(this.nodes$.value);
|
|
14
|
+
const current = nodes.get(node.node_id);
|
|
15
|
+
nodes.set(node.node_id, {
|
|
16
|
+
...current,
|
|
17
|
+
...node,
|
|
18
|
+
topics: node.topics || current?.topics || [],
|
|
19
|
+
services: {
|
|
20
|
+
...(current?.services || {}),
|
|
21
|
+
...(node.services || {})
|
|
22
|
+
},
|
|
23
|
+
nodes: {
|
|
24
|
+
...(current?.nodes || {}),
|
|
25
|
+
...(node.nodes || {})
|
|
26
|
+
},
|
|
27
|
+
transporters: {
|
|
28
|
+
...(current?.transporters || {}),
|
|
29
|
+
...(node.transporters || {})
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
this.nodes$.next(nodes);
|
|
33
|
+
return nodes.get(node.node_id);
|
|
34
|
+
}
|
|
35
|
+
removePeer(nodeId) {
|
|
36
|
+
const nodes = new Map(this.nodes$.value);
|
|
37
|
+
const deleted = nodes.delete(nodeId);
|
|
38
|
+
if (deleted) {
|
|
39
|
+
this.nodes$.next(nodes);
|
|
40
|
+
}
|
|
41
|
+
return deleted;
|
|
42
|
+
}
|
|
43
|
+
listPeers(service) {
|
|
44
|
+
return [...this.nodes$.value.values()].filter(node => {
|
|
45
|
+
if (service && node.services[service] == undefined)
|
|
46
|
+
return false;
|
|
47
|
+
return true;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
watch(service) {
|
|
51
|
+
return this.nodes$.pipe(map(() => this.listPeers(service)));
|
|
52
|
+
}
|
|
53
|
+
pickRpcNode(service, options = {}) {
|
|
54
|
+
if (options.node_id) {
|
|
55
|
+
const node = this.getPeer(options.node_id);
|
|
56
|
+
if (!node)
|
|
57
|
+
return null;
|
|
58
|
+
if (node.services[service] == undefined)
|
|
59
|
+
return null;
|
|
60
|
+
return node.node_id;
|
|
61
|
+
}
|
|
62
|
+
const targets = this.listPeers(service);
|
|
63
|
+
if (targets.length === 0)
|
|
64
|
+
return null;
|
|
65
|
+
const index = ((this.#rrIndexes.get(service) || 0) + 1) % targets.length;
|
|
66
|
+
this.#rrIndexes.set(service, index);
|
|
67
|
+
return targets[index]?.node_id;
|
|
68
|
+
}
|
|
69
|
+
getRpcTransporterName(service) {
|
|
70
|
+
return this.#transporters.get(service);
|
|
71
|
+
}
|
|
72
|
+
listTopicNodes(topic) {
|
|
73
|
+
return [...this.nodes$.value.values()].filter(node => node.topics.includes(topic));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=Registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.js","sourceRoot":"","sources":["../../src/Registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,16 +12,10 @@ export declare class RemoteServiceLinker<Service> {
|
|
|
12
12
|
private sm;
|
|
13
13
|
private options;
|
|
14
14
|
constructor(sm: SpiderMesh, options: RemoteServiceOptions);
|
|
15
|
-
watch(): Observable<
|
|
16
|
-
|
|
17
|
-
})[]>;
|
|
18
|
-
get nodes(): (SpiderMeshNode & {
|
|
19
|
-
rpc?: string;
|
|
20
|
-
})[];
|
|
15
|
+
watch(): Observable<SpiderMeshNode[]>;
|
|
16
|
+
get nodes(): SpiderMeshNode[];
|
|
21
17
|
set<Fallback>(options: Omit<Partial<RpcOptions<Fallback>>, 'service' | 'method' | 'args'>): Mapper<Service, Fallback>;
|
|
22
|
-
wait(checker?: ServiceChecker, stop$?: Observable<any>): Promise<
|
|
23
|
-
rpc?: string;
|
|
24
|
-
})[] | null>;
|
|
18
|
+
wait(checker?: ServiceChecker, stop$?: Observable<any>): Promise<SpiderMeshNode[] | null>;
|
|
25
19
|
static link<Service, Fallback = never>(sm: SpiderMesh, options: RemoteServiceOptions): Mapper<Service, Fallback>;
|
|
26
20
|
}
|
|
27
21
|
export type Mapper<Service, Fallback = unknown> = RemoteServiceLinker<Service> & ({
|
|
@@ -41,11 +41,10 @@ export class RemoteServiceLinker {
|
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
wait(checker = (nodes => nodes.length > 0), stop$ = EMPTY) {
|
|
44
|
-
return firstValueFrom(this.watch().pipe(takeUntil(stop$),
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
})), { defaultValue: null });
|
|
44
|
+
return firstValueFrom(this.watch().pipe(takeUntil(stop$), mergeMap(async (nodes) => ({
|
|
45
|
+
nodes,
|
|
46
|
+
ready: await checker(nodes)
|
|
47
|
+
})), filter(result => result.ready), map(result => result.nodes)), { defaultValue: null });
|
|
49
48
|
}
|
|
50
49
|
static link(sm, options) {
|
|
51
50
|
const target = new this(sm, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteService.js","sourceRoot":"","sources":["../../src/RemoteService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAc,EAAE,EAAS,MAAM,MAAM,CAAC;AAMxH,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;AAiBF,MAAM,OAAO,mBAAmB;IAGhB;IACA;IAFZ,YACY,EAAc,EACd,OAA6B;QAD7B,OAAE,GAAF,EAAE,CAAY;QACd,YAAO,GAAP,OAAO,CAAsB;IACrC,CAAC;IAIL,KAAK;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACrD,CAAC;IAED,GAAG,CAAW,OAA2E;QACrF,OAAO,mBAAmB,CAAC,IAAI,CAAoB,IAAI,CAAC,EAAE,EAAE;YACxD,GAAG,IAAI,CAAC,OAAO;YACf,GAAG,OAAO;SACb,CAAC,CAAA;IACN,CAAC;IAED,IAAI,CAAC,UAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,QAAyB,KAAK;QACtF,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CACnC,SAAS,CAAC,KAAK,CAAC,EAChB,
|
|
1
|
+
{"version":3,"file":"RemoteService.js","sourceRoot":"","sources":["../../src/RemoteService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Observable } from "rxjs";
|
|
2
|
-
import { SpiderMeshNode,
|
|
1
|
+
import { Observable, Subscription } from "rxjs";
|
|
2
|
+
import { SpiderMeshNode, RpcOptions, MeshTransporter } from './types.js';
|
|
3
|
+
import { Registry } from './Registry.js';
|
|
3
4
|
export type HelloEvent = SpiderMeshNode & {
|
|
4
5
|
back?: boolean;
|
|
5
6
|
};
|
|
@@ -8,27 +9,15 @@ export type NodesMap = {
|
|
|
8
9
|
nodes: Map<string, SpiderMeshNode>;
|
|
9
10
|
last_updated_node_id: string;
|
|
10
11
|
};
|
|
11
|
-
export type SpiderMeshOptions = {
|
|
12
|
-
transporters: Array<{
|
|
13
|
-
new (): RpcTransporter | PubsubTransporter | DiscoveryTransporter;
|
|
14
|
-
} | RpcTransporter | PubsubTransporter | DiscoveryTransporter>;
|
|
15
|
-
};
|
|
16
12
|
export declare class SpiderMesh {
|
|
17
13
|
#private;
|
|
18
|
-
|
|
14
|
+
readonly registry?: Registry | undefined;
|
|
19
15
|
readonly node_id: string;
|
|
20
16
|
readonly namespace: string;
|
|
21
|
-
constructor(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
26
|
-
listRpcNodes(service: string): (SpiderMeshNode & {
|
|
27
|
-
rpc?: string;
|
|
28
|
-
})[];
|
|
29
|
-
watchService(service: string): Observable<(SpiderMeshNode & {
|
|
30
|
-
rpc?: string;
|
|
31
|
-
})[]>;
|
|
17
|
+
constructor(registry?: Registry | undefined);
|
|
18
|
+
registerTransporter(meshTransporter: MeshTransporter, name?: string): Subscription;
|
|
19
|
+
listRpcNodes(service: string): SpiderMeshNode[];
|
|
20
|
+
watchService(service: string): Observable<SpiderMeshNode[]>;
|
|
32
21
|
callRemoteService<R, T>(options: RpcOptions<T>): Observable<R | T>;
|
|
33
22
|
linkEvent<T>(factory: {
|
|
34
23
|
new (...args: any[]): T;
|