UNPKG

@ryancavanaugh/jug

Version:

Type definitions for jug from https://www.github.com/DefinitelyTyped/DefinitelyTyped

134 lines (111 loc) 3.09 kB
// Type definitions for jug // Project: https://github.com/kaiquewdev/Graph // Definitions by: yevt <https://github.com/yevt> // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /** * Internal structure of a vertex */ interface VertexStructure { level: number; edge: Array<Vertex>, data: VertexData, parent: Vertex } /** * User data of a vertex. */ type VertexData = Object; /** * Graph constructor function. */ interface GraphConstructor { new():Graph; } /** * Creates root node of a graph. */ interface Graph { vertex:VertexConstructor; init(data?:VertexData):Vertex; } /** * Vertex constructor function. */ interface VertexConstructor { new(obj?:VertexData):Vertex; } /** * Represents one node of a graph. */ interface Vertex { /** * Initial vertex data. */ internal: VertexStructure; /** * Verify the level. */ level(): number; /** * Get edge count. */ edge(): number; /** * Access node. * @param index - edge index. */ edge(index:number): Vertex; /** * Seed node. * @param [data] - created vertex UserData. */ seed(data?:VertexData): Vertex; /** * Verify if the current node is the root. */ isRoot(): boolean; /** * Set node data. * @param obj - data to be set. */ data(obj:VertexData): Vertex; /** * Get node data. */ data(): VertexData; /** * Get distance between nodes. * @param from * @param to */ proximity(from:string, to:string): Array<number>; /** * Find a node. * @param {string} type - object type. * @param {Object} query - _.where query object. */ find(type:string|void, query:Object): Array<VertexData>; /** * Get siblings of specified edge. * @param {number} index - edge index. */ getSiblingsOf(index:number): Array<VertexData>; /** * Getting childs of an specified edge. * @param egde - target vertex; */ getChildsOf(egde:number): Array<VertexData>; /** * Getting parents of an specified level and edge. * @param {number} level - max level. * @param {number} edge - edge index. */ getParentsFrom(level:number, edge:number): Array<VertexData>; /** * Getting the length of childs of an specified edge. * @param {number} edge - edge index. */ getScopeOf(edge:number): number; } declare var jug:Graph; export = jug;