@tbui17/graph-functions
TypeScript icon, indicating that this package has built-in type declarations

0.3.5 • Public • Published

Overview

Utility functions for traversing or querying the Graphology graph data structure.

See typedocs and tests folder for details of available utilities.


Repository Structure

└── 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

Modules

.
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 Installation

npm install @tbui17/graph-functions

Installation

  1. Clone the graph-functions repository:
git clone https://github.com/tbui17/graph-functions
  1. Change to the project directory:
cd graph-functions
  1. Install the dependencies:
npm install

Tests

To execute tests, run:

npm test

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @tbui17/graph-functions

Weekly Downloads

2

Version

0.3.5

License

MIT

Unpacked Size

2.06 MB

Total Files

124

Last publish

Collaborators

  • tbui17