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:
cd graph-functions
- Install the dependencies:
npm install
To execute tests, run:
npm test
MIT