Remove root nodes source edge
This commit is contained in:
@@ -5,8 +5,8 @@ export class Edge {
|
||||
public name: string
|
||||
|
||||
public node!: TreeNode
|
||||
public source: TreeNode | undefined
|
||||
public target: TreeNode | undefined
|
||||
public source?: TreeNode | undefined
|
||||
private cachedHash?: string
|
||||
|
||||
constructor(name: string) {
|
||||
this.name = name
|
||||
@@ -17,12 +17,16 @@ export class Edge {
|
||||
}
|
||||
|
||||
public hash(): string {
|
||||
let previousHash = this.source ? this.source.sourceEdge.hash() : ''
|
||||
return 'H' + sha1(previousHash + this.name)
|
||||
if (!this.cachedHash) {
|
||||
let previousHash = (this.source && this.source.sourceEdge) ? this.source.sourceEdge.hash() : ''
|
||||
this.cachedHash = 'H' + sha1(previousHash + this.name)
|
||||
}
|
||||
|
||||
return this.cachedHash
|
||||
}
|
||||
|
||||
public firstEdge(): Edge {
|
||||
if (this.source) {
|
||||
if (this.source && this.source.sourceEdge) {
|
||||
return this.source.sourceEdge.firstEdge()
|
||||
} else {
|
||||
return this
|
||||
|
||||
@@ -2,8 +2,6 @@ import { Edge, TreeNode } from './'
|
||||
|
||||
export class Tree extends TreeNode {
|
||||
constructor() {
|
||||
const rootEdge = new Edge('')
|
||||
super(rootEdge, undefined)
|
||||
rootEdge.node = this
|
||||
super(undefined, undefined)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,15 +3,17 @@ import { EventEmitter } from 'events'
|
||||
|
||||
export class TreeNode extends EventEmitter {
|
||||
public sourceEdge?: Edge
|
||||
public value: any | null | undefined = undefined
|
||||
public value?: any | null
|
||||
public edges: {[s: string]: Edge} = {}
|
||||
public collapsed = false
|
||||
|
||||
constructor(sourceEdge: Edge, value: any) {
|
||||
constructor(sourceEdge?: Edge, value?: any) {
|
||||
super()
|
||||
|
||||
this.sourceEdge = sourceEdge
|
||||
sourceEdge.target = this
|
||||
if (sourceEdge) {
|
||||
this.sourceEdge = sourceEdge
|
||||
sourceEdge.target = this
|
||||
}
|
||||
this.value = value
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ export abstract class TreeNodeFactory {
|
||||
let leaf = reversed[0].node
|
||||
|
||||
let sourceTree = new Tree()
|
||||
sourceTree.addEdge(leaf.firstNode().sourceEdge)
|
||||
sourceTree.updateWithNode(leaf.firstNode())
|
||||
|
||||
return leaf
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user