metagraph
Version:
A framework for building higher-order graph data structures
202 lines • 9.71 kB
TypeScript
/**
* Creates a standard graph pattern specification for building graph instances.
* Defines the dataflow computation and interface for creating graph objects with nodes and edges.
*
* @param opts - Optional graph options for customizing node/edge accessors
* @returns A pattern specification that can create graph instances
*
* @example
* ```typescript
* // Create a graph pattern and use it to build a graph
* const pat = pattern(graph_pattern());
* const myGraph = pat.node('Graph').value().create({
* nodes: [{key: 'a'}, {key: 'b'}],
* edges: [{key: 'edge', value: {source: 'a', target: 'b'}}]
* });
* ```
*/
export declare const graph_pattern: (opts?: any) => {
dataflow: {
incidences: {
nodes: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
edges: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => unknown;
};
};
node_by_key: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[]) => Record<string, unknown>;
};
refs: string;
ins: string;
};
edge_by_key: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[]) => Record<string, unknown>;
};
refs: string;
ins: string;
};
graph: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => () => never;
};
};
node_list: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[], map: Record<string, unknown>) => unknown[];
};
refs: string;
ins: string[];
};
edge_list: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[], map: Record<string, unknown>) => unknown[];
};
refs: string;
ins: string[];
};
node_outs: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[], map: Record<string, unknown>) => Record<string, unknown[]>;
};
refs: string;
ins: string[];
};
node_ins: {
node: {
calc: (fnode: import("./types.js").Node) => (defn: import("./types.js").PatternDefinition) => (flow: import("./types.js").DataflowInstance) => (data: unknown[], map: Record<string, unknown>) => Record<string, unknown[]>;
};
refs: string;
ins: string[];
};
};
};
interface: {
nodes: {
Graph: {
class_members: {
create: (flowspec: import("./types.js").Graph, inode: import("./types.js").Node) => {
defn: (defn: import("./types.js").PatternDefinition) => (data: unknown) => unknown;
};
};
};
Node: {
members: {
key: string;
value: (flowspec: import("./types.js").Graph, inode: import("./types.js").Node) => {
accessor: (val: unknown) => unknown;
defn: (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => () => unknown;
};
}[];
}[];
Edge: {
members: {
key: string;
value: (flowspec: import("./types.js").Graph, inode: import("./types.js").Node) => {
accessor: (val: unknown) => unknown;
defn: (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => () => unknown;
};
}[];
}[];
};
edges: {
graph_node: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
node_graph: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance) => (x: unknown) => () => unknown;
};
};
graph_nodes: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance) => (x: unknown) => () => unknown;
};
};
graph_edge: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => (key: unknown) => unknown;
};
};
edge_graph: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance) => (x: unknown) => () => unknown;
};
};
graph_edges: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance) => (x: unknown) => () => unknown;
};
};
edge_source: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => () => unknown;
};
};
edge_target: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => () => unknown;
};
};
node_outs: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => () => {};
};
};
node_ins: {
name: string;
source: string;
target: string;
deps: string;
member: {
funfun: (flowspec: import("./types.js").Graph, iedge: import("./types.js").Edge) => (defn: import("./types.js").PatternDefinition, flow: import("./types.js").DataflowInstance, val: unknown) => (map: Record<string, unknown>) => () => {};
};
};
};
};
};
//# sourceMappingURL=graph_pattern.d.ts.map