reactive-graph-matcher
v0.1.0
Published
A reactive graph engine that finds subgraph patterns and executes callbacks upon changes.
Downloads
9
Maintainers
Readme
Reactive Graph Matcher
A reactive graph engine built with Graphology that finds subgraph patterns and executes callbacks upon changes to the graph.
Installation
npm install reactive-graph-matcherQuick Start
Here is a basic example of how to use the engine to find a pattern.
import { ReactivePatternMatcher, Pattern } from 'reactive-graph-matcher';
async function main() {
const engine = new ReactivePatternMatcher();
// 1. Define the pattern to find
const knowsPattern: Pattern = {
nodes: [
{ id: 'a', properties: { type: 'Person' } },
{ id: 'b', properties: { type: 'Person' } }
],
edges: [
{ source: 'a', target: 'b', properties: { rel: 'KNOWS' } }
],
};
// 2. Register a callback for the pattern
engine.onMatch(knowsPattern, (subgraph) => {
const personA = subgraph.nodes.find(n => n.id.startsWith('Alice'));
const personB = subgraph.nodes.find(n => n.id.startsWith('Bob'));
if (personA && personB) {
console.log(`${personA.id} knows ${personB.id}!`);
}
});
// 3. Apply changes to the graph
await engine.apply([
{ type: 'addNode', node: { id: 'Alice', type: 'Person' } },
{ type: 'addNode', node: { id: 'Bob', type: 'Person' } },
{ type: 'addEdge', source: 'Alice', target: 'Bob', attributes: { rel: 'KNOWS' } }
]);
// Output: Alice knows Bob!
}
main();API
new ReactivePatternMatcher()
Creates a new engine instance.
engine.apply(commands: UserCmd[]): Promise<void>
Applies a batch of commands to mutate the graph.
engine.onMatch(pattern: Pattern, callback: MatchCallback): void
Registers a pattern and a callback to be executed when a match is found.
