UNPKG

metagraph

Version:

A framework for building higher-order graph data structures

202 lines 9.71 kB
/** * 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