MCPcopy
hub / github.com/redis/node-redis / mergeSentinelNodes

Function mergeSentinelNodes

packages/client/lib/sentinel/utils.ts:37–55  ·  view source on GitHub ↗
(
  seedNodes: Array<RedisNode>,
  discoveredNodes: Array<RedisNode>
)

Source from the content-addressed store, hash-verified

35 * (see issue #3237).
36 */
37export function mergeSentinelNodes(
38 seedNodes: Array<RedisNode>,
39 discoveredNodes: Array<RedisNode>
40): Array<RedisNode> {
41 const seen = new Set<string>();
42 const merged: Array<RedisNode> = [];
43
44 for (const node of [...seedNodes, ...discoveredNodes]) {
45 const key = `${node.host}:${node.port}`;
46 if (!seen.has(key)) {
47 // Clone so the working root-nodes list never aliases the frozen seed
48 // node objects (or the discovered ones).
49 merged.push({ host: node.host, port: node.port });
50 seen.add(key);
51 }
52 }
53
54 return merged;
55}
56
57export function clientSocketToNode(socket: RedisSocketOptions): RedisNode {
58 const s = socket as RedisTcpSocketOptions;

Callers 2

transformMethod · 0.90
index.spec.tsFile · 0.90

Calls 3

hasMethod · 0.80
addMethod · 0.65
pushMethod · 0.45

Tested by

no test coverage detected