Circuit JSON to Connectivity Map
This library provides utilities to generate connectivity maps from circuit JSON data. It's designed to work with the @tscircuit/soup
library and offers functionality to find connected networks and create connectivity maps.
Installation
To install the library, use npm or bun:
npm add circuit-json-to-connectivity-map
Features
- Find connected networks from a list of connections
- Generate source port connectivity maps from circuit JSON data
- Generate full connectivity maps from circuit JSON data
Usage
Finding Connected Networks
import { findConnectedNetworks } from "circuit-json-to-connectivity-map"
const connections = [
["A", "B"],
["B", "C"],
["D", "E"],
]
const result = findConnectedNetworks(connections)
console.log(result)
Generating Source Port Connectivity Map
import { getSourcePortConnectivityMapFromCircuitJson } from "circuit-json-to-connectivity-map"
import type { AnyCircuitElement } from "circuit-json"
const circuitJson: AnyCircuitElement[] = [
]
const connectivityMap = getSourcePortConnectivityMapFromCircuitJson(circuitJson)
console.log(connectivityMap.areIdsConnected("port1", "port2"))
console.log(connectivityMap.getIdsConnectedToNet("net1"))
console.log(connectivityMap.getNetConnectedToId("port1"))
Generating Full Connectivity Map
import { getFullConnectivityMapFromCircuitJson } from "circuit-json-to-connectivity-map"
import type { AnyCircuitElement } from "circuit-json"
const circuitJson: AnyCircuitElement[] = [
]
const fullConnectivityMap = getFullConnectivityMapFromCircuitJson(circuitJson)
console.log(fullConnectivityMap.areIdsConnected("smtpad1", "port1"))
console.log(fullConnectivityMap.getIdsConnectedToNet("net1"))
console.log(fullConnectivityMap.getNetConnectedToId("pcb_port1"))
API Reference
findConnectedNetworks(connections: Array<string[]>): Record<string, string[]>
Finds connected networks from a list of connections.
getSourcePortConnectivityMapFromCircuitJson(circuitJson: AnyCircuitElement[]): ConnectivityMap
Generates a source port connectivity map from circuit JSON data.
getFullConnectivityMapFromCircuitJson(circuitJson: AnyCircuitElement[]): ConnectivityMap
Generates a full connectivity map from circuit JSON data, including PCB elements.
ConnectivityMap
A class representing the connectivity map with methods:
areIdsConnected(id1: string, id2: string): boolean
getIdsConnectedToNet(netId: string): string[]
getNetConnectedToId(id: string): string | undefined
Development
This project uses Bun as its JavaScript runtime.
To start development:
- Clone the repository
- Run
bun install
to install dependencies
- Make your changes
- Run
bun test
to ensure all tests pass
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License