Detalhes do pacote

connectivity-map

seveibar36.5k1.0.0

A module for managing connectivity between nodes in a network

readme (leia-me)

connectivity-map

A TypeScript module for managing connectivity between nodes in a network. Track and merge connections dynamically with efficient lookups.

Installation

npm install connectivity-map
# or
bun install connectivity-map
# or  
yarn add connectivity-map
# or
pnpm add connectivity-map

Usage

import { ConnectivityMap } from 'connectivity-map'

// Initialize with existing network topology
const netMap = {
  net1: ["A", "B"],
  net2: ["C", "D"]
}

const connectivity = new ConnectivityMap(netMap)

// Add new connections
connectivity.addConnections([
  ["B", "E"],    // Connect E to existing net1 (A, B)
  ["F", "G"],    // Create new network for F and G
  ["C", "H"]     // Connect H to existing net2 (C, D)
])

// Query connectivity
console.log(connectivity.areIdsConnected("A", "E"))  // true
console.log(connectivity.areIdsConnected("A", "C"))  // false

// Get all nodes connected to a network
const net1Nodes = connectivity.getIdsConnectedToNet("net1")
console.log(net1Nodes)  // ["A", "B", "E"]

// Find which network a node belongs to
const nodeNetwork = connectivity.getNetConnectedToId("F")
console.log(nodeNetwork)  // "connectivity_net2"

API

Constructor

new ConnectivityMap(netMap: Record<string, string[]>)

Initialize with an existing network topology where keys are network IDs and values are arrays of node IDs.

Methods

addConnections(connections: string[][]): void

Add new connections to the network. Each connection is an array of node IDs that should be connected together. If nodes already belong to different networks, those networks will be merged.

areIdsConnected(id1: string, id2: string): boolean

Check if two nodes are connected (belong to the same network).

areAllIdsConnected(ids: string[]): boolean

Check if all nodes in an array belong to the same network.

getIdsConnectedToNet(netId: string): string[]

Get all node IDs that belong to a specific network.

getNetConnectedToId(id: string): string | undefined

Get the network ID that a specific node belongs to. Returns undefined if the node doesn't exist.

Development

# Install dependencies
bun install

# Run tests
bun test

# Build the package
bun run build

# Format code
bun run format

# Watch mode during development
bun run dev

License

MIT