Utility functions for traversing or querying the Graphology graph data structure.
See typedocs and tests folder for details of available utilities.
└── graph-functions/
├── .changeset
│ └── config.json
├── .eslintrc.cjs
├── .github
│ └── workflows
│ ├── main.yml
│ └── publish.yml
├── index.ts
├── package.json
├── pnpm-lock.yaml
├── prettier.config.mjs
├── src
│ ├── edges
│ │ ├── filterEdgeEntries.ts
│ │ ├── getEdgeEntry.ts
│ │ ├── getGraphEdgesOfType.ts
│ │ ├── getParallelEdgeEntries.ts
│ │ ├── index.ts
│ │ ├── mapFilterEdges.ts
│ │ ├── mappers.ts
│ │ ├── realignGraphEdges.ts
│ │ └── types.ts
│ ├── index.ts
│ ├── nodes
│ │ ├── filterNodeEntries.ts
│ │ ├── getGraphNodesOfType.ts
│ │ ├── getNodeEntry.ts
│ │ ├── index.ts
│ │ ├── mapFilterNodes.ts
│ │ └── types.ts
│ ├── recursors
│ │ ├── bfs.ts
│ │ ├── index.ts
│ │ ├── RecursorContext.ts
│ │ └── TraversalStateManager.ts
│ ├── toUndirectedKeepEdgeNames.ts
│ ├── types.ts
│ └── unweightedSteinerSubgraph.ts
└── tsconfig.json
.
| File |
Summary |
| .eslintrc.cjs |
The code snippet configures eslint for TypeScript enforcement in a library focused on graph data structure manipulation. |
| index.ts |
The index.ts file acts as an entry point, re-exporting functionalities from the source internals, aligning with the repository's focus on graph data structure manipulations. |
| package.json |
This codebase provides graph manipulation and traversal utilities as a library, with functions focusing on nodes, edges, and recursive searches within graph data structures. It's built in TypeScript, follows modern JS ecosystem practices, and includes automated workflows for testing and release. |
| pnpm-lock.yaml |
This code snippet is part of a graph-related utilities library, managing configurations for changesets, linting, and continuous integration workflows, focusing on automated code quality and publishing processes. |
| prettier.config.mjs |
The prettier.config.mjs configures code formatting for the graph-related function library, ensuring consistent styling across the repository. |
| tsconfig.json |
The tsconfig.json sets TypeScript compiler options for strict type-checking and ESNext features, optimizing the graph library for robust development. |
.changeset
| File |
Summary |
| config.json |
The code manages a graph utility library within a Node.js ecosystem, automating changelog generation and enforcing consistent code style and CI workflows. |
.github.workflows
| File |
Summary |
| main.yml |
Continuous Integration setup for graph-functions repo, automating tests, linting, and build on push to any branch. |
| publish.yml |
The publish.yml workflow automates package deployment when the main branch updates or CI succeeds, using concurrency to manage simultaneous runs. |
src
| File |
Summary |
| index.ts |
The src/index.ts serves as the central export hub for the graph-functions library, consolidating utilities for graph edges, nodes, traversal algorithms, and specific graph operations. |
| toUndirectedKeepEdgeNames.ts |
This snippet provides a utility within the graph-functions module to convert directed graphs to undirected while preserving edge key names. |
| types.ts |
Types module for a graph-oriented library, provides type inference for nodes, edges, and graph attributes based on the Graphology library's types. |
| unweightedSteinerSubgraph.ts |
This code provides a function to compute the unweighted Steiner subgraph in a graph architecture, ensuring it contains specified nodes and handles disconnections with a custom error. |
src.edges
| File |
Summary |
| filterEdgeEntries.ts |
The filterEdgeEntries.ts file provides a utility to filter edges in a graph based on specified criteria, crucial for graph traversal and manipulation within the graph-functions library. |
| getEdgeEntry.ts |
The getEdgeEntry function retrieves detailed data for a graph edge, integral to edge-related operations in the graph-processing library. |
| getGraphEdgesOfType.ts |
The getGraphEdgesOfType.ts module provides utilities to filter and retrieve edges from a graph data structure based on type specifications, integral to the graph-functions library's edge manipulation capabilities. |
| getParallelEdgeEntries.ts |
This module identifies and groups parallel edges within a graph data structure, utilizing the graphology library and lodash for processing. |
| index.ts |
The file serves as a central export hub for edge-related utilities in a graph manipulation library. |
| mapFilterEdges.ts |
The snippet provides utility functions for mapping and filtering a graph's edges based on custom criteria, crucial for graph manipulation within the architecture. |
| mappers.ts |
The code provides edge transformation utilities within a graph manipulation library, aligning edges and mapping iteration parameters to standardized structures. |
| realignGraphEdges.ts |
The code provides functionality to realign graph edges within a graph data structure, based on node types or custom filters, altering the graph's edge directionality. |
| types.ts |
Defines edge-related TypeScript types for graph manipulation functions, integral to enforcing type safety and facilitating edge operations within the graph library. |
src.nodes
| File |
Summary |
| filterNodeEntries.ts |
This code provides a utility to filter nodes in a graph, returning nodes that meet criteria defined by a provided filter function. It's part of a graph manipulation library. |
| getGraphNodesOfType.ts |
The getGraphNodesOfType.ts provides functionality for retrieving nodes by type from a graph, supporting both individual and multiple type queries. |
| getNodeEntry.ts |
This snippet defines getNodeEntry, a utility fetching node details from a graph, pivotal for node data retrieval within the graph library. |
| index.ts |
This code serves as an export hub for node-related functionalities within a graph manipulation library, streamlining the repository's module structure. |
| mapFilterNodes.ts |
The mapFilterNodes.ts module provides a utility for transforming and selectively including nodes from a graph based on custom logic defined in a mapper function, within a graph manipulation library. |
| types.ts |
Defines types for node-related operations in a graph architecture, focusing on type-based filtering and retrieval. |
src.recursors
| File |
Summary |
| bfs.ts |
This code provides a breadth-first search (BFS) utility for traversing graphs, handling directed/undirected and partial traversals with customizable neighbor iteration strategies within the graph-functions library. |
| index.ts |
The src/recursors/index.ts centralizes exports of graph traversal functionalities for the graph utility library. |
| RecursorContext.ts |
The RecursorContext class provides a context for graph traversal operations within the graph-functions library, managing node and edge data access and manipulation for specific graph recursion scenarios. |
| TraversalStateManager.ts |
The TraversalStateManager manages state for graph traversal algorithms, tracking visited nodes, paths, and handling cycles within the graph-functions library. |
npm install @tbui17/graph-functions
- Clone the graph-functions repository:
git clone https://github.com/tbui17/graph-functions
- Change to the project directory:
- Install the dependencies:
To execute tests, run:
MIT