Skip to main content

interface EdgeValuedGraph.Builder<N,V>

A mutable EdgeValuedGraph builder used to efficiently create new immutable instances. See the Graph documentation and the EdgeValuedGraph.Builder API documentation

Extends: EdgeValuedGraphBase.Builder<N,V,Tp>

Type parameters

NameDescription
Nthe node type
Vthe connection value type

Properties

connectionSize

Returns the amount of connections in the graph.

Definition

readonly connectionSize: number;

example
ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
.connectionsSize
// => 2

Overrides

Builder.connectionSize

context

Returns the context associated to this collection instance.

Definition

readonly context: WithGraphValues<Tp, N, V>['context'];

Overrides

Builder.context

isEmpty

Returns true if there are no entries in the builder.

Definition

readonly isEmpty: boolean;

example
ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
.isEmpty
// => false

Overrides

Builder.isEmpty

nodeSize

Returns the amount of nodes in the graph.

Definition

readonly nodeSize: number;

example
ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
.nodeSize
// => 3

Overrides

Builder.nodeSize

Methods

addGraphElement

Adds the given element graph element to the graph.

Definition

addGraphElement(element: ValuedGraphElement<N, V>): boolean;

Parameters

NameTypeDescription
elementValuedGraphElement<N, V>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.addGraphElement([4]) // => true
b.addGraphElement([3, 1, 'c']) // => true
b.addGraphElement([1, 2, 'a']) // => false

Overrides

Builder.addGraphElement

addGraphElements

Adds the graph elements in the given elements StreamSource to the graph.

Definition

addGraphElements(elements: StreamSource<ValuedGraphElement<N, V>>): boolean;

Parameters

NameTypeDescription
elementsStreamSource<ValuedGraphElement<N, V>>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.addGraphElements([[4], [5]]) // => true
b.addGraphElements([[3, 1, 'c'], [1]]) // => true
b.addGraphElements([[1, 2, 'a'], [1]]) // => false

Overrides

Builder.addGraphElements

addNode

Adds the given node to the graph.

Definition

addNode(node: N): boolean;

Parameters

NameTypeDescription
nodeN
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.addNode(6) // => true
b.addNode(1) // => false

Overrides

Builder.addNode

addNodes

Adds the given nodes to the builder.

Definition

addNodes(nodes: StreamSource<N>): boolean;

Parameters

NameTypeDescription
nodesStreamSource<N>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.addNodes([3, 4, 5]) // => true
b.addNodes([1, 2]) // => false

Overrides

Builder.addNodes

build

Returns an immutable graph containing the nodes and connections of this builder.

Definition

build(): WithGraphValues<Tp, N, V>['normal'];

example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
const g: ArrowValuedGraphHashed<number, string> = b.build()

Overrides

Builder.build

buildMapValues

Returns an immutable graph containing the nodes and connections of this builder, where the values are mapped using the given mapFun function.

Definition

buildMapValues<V2>(mapFun: (value: V, node1: N, node2: N) => V2): WithGraphValues<Tp, N, V2>['normal'];

Type parameters

NameDescription
V2

Parameters

NameTypeDescription
mapFun(value: V, node1: N, node2: N) => V2a function taking the value
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
const g: ArrowValuedGraphHashed<number, string> = b.buildMapValues(v => v.toUpperCase())

Overrides

Builder.buildMapValues

connect

Adds a connection between node1 and node2 to the graph with given value.

Definition

connect(node1: N, node2: N, value: V): boolean;

Parameters

NameTypeDescription
node1Nthe first connection node
node2Nthe second connection node
valueV
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.connect(3, 1, 'c') // => true
b.connect(1, 2, 'a') // => false
b.connect(1, 2, 'z') // => true

Overrides

Builder.connect

connectAll

Adds the connections in given connections StreamSource to the graph.

Definition

connectAll(connections: StreamSource<WithGraphValues<Tp, N, V>['link']>): boolean;

Parameters

NameTypeDescription
connectionsStreamSource<WithGraphValues<Tp, N, V>['link']>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.connectAll([[1, 2, 'a'], [3, 1, 'c']]) // => true
b.connectAll([[1, 2, 'a']]) // => false

Overrides

Builder.connectAll

disconnect

Removes the connection between given node1 and node2 if the connection was present.

Definition

disconnect<UN = N>(node1: RelatedTo<N, UN>, node2: RelatedTo<N, UN>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
node1RelatedTo<N, UN>the first connection node
node2RelatedTo<N, UN>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.disconnect(1, 2) // => true
b.disconnect(3, 4) // => false

Overrides

Builder.disconnect

disconnectAll

Removes all connections from the given connections StreamSource from the graph.

Definition

disconnectAll<UN = N>(connections: StreamSource<Link<RelatedTo<N, UN>>>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
connectionsStreamSource<Link<RelatedTo<N, UN>>>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.disconnectAll([[1, 2], [3, 4]]) // => true
b.disconnectAll([[3, 4], [5, 6]]) // => false

Overrides

Builder.disconnectAll

getValue

Returns the value associated with the connection between node1 and node2, or given otherwise value if the key is not in the collection.

Definitions

getValue<UN = N>(node1: RelatedTo<N, UN>, node2: RelatedTo<N, UN>): V | undefined;

getValue<UN, O>(node1: RelatedTo<N, UN>, node2: RelatedTo<N, UN>, otherwise: OptLazy<O>): V | O;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
node1RelatedTo<N, UN>the first connection node
node2RelatedTo<N, UN>the second connection node
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
m.getValue(2, 3) // => 'b'
m.getValue(3, 4) // => undefined
m.getValue(2, 3, 'none') // => 'b'
m.getValue(3, 4, 'none') // => 'none'

Overrides

Builder.getValue

hasConnection

Returns true if the graph has a connection between given nodes node1 and node2.

Definition

hasConnection<UN = N>(node1: RelatedTo<N, UN>, node2: RelatedTo<N, UN>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
node1RelatedTo<N, UN>the first connection node
node2RelatedTo<N, UN>the second connection node
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.hasConnection(1, 2) // => true
b.hasConnection(6, 7) // => false

Overrides

Builder.hasConnection

hasNode

Returns true if the graph contains the given node.

Definition

hasNode<UN = N>(node: RelatedTo<N, UN>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
nodeRelatedTo<N, UN>the node to search
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.hasNode(1) // => true
b.hasNode(6) // => false

Overrides

Builder.hasNode

modifyAt

Modifies the graph at the connection between given node1 and node2 modified according to given options.

Definition

modifyAt(node1: N, node2: N, options: {
      ifNew?: OptLazyOr<V, Token>;
      ifExists?: (value: V, remove: Token) => V | Token;
    }): boolean;

Parameters

NameTypeDescription
node1Nthe first connection node
node2Nthe second connection node
options{
      ifNew?: OptLazyOr<V, Token>;
      ifExists?: (value: V, remove: Token) => V | Token;
    }
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.modifyAt(3, 4, { ifNew: 'c' }) // => true
g.modifyAt(4, 5, { ifNew: (none) => 1 < 2 ? none : 'c' }) // => false
g.modifyAt(1, 2, { ifNew: 'a' }) // => false
g.modifyAt(1, 2, { ifExists: () => 'c' }) // => false
g.modifyAt(1, 2, { ifExists: (v) => v + 'z' }) // => true
g.modifyAt(2, 3, { ifExists: (v, remove) => v === 'a' ? v : remove })
// => true

Overrides

Builder.modifyAt

removeNode

Removes the given node, and any of its connections, from the graph.

Definition

removeNode<UN = N>(node: RelatedTo<N, UN>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
nodeRelatedTo<N, UN>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.removeNode(1) // => true
b.removeNode(6) // => false

Overrides

Builder.removeNode

removeNodes

Removes the given nodes, and any of their connections, from the graph.

Definition

removeNodes<UN = N>(nodes: StreamSource<RelatedTo<N, UN>>): boolean;

Type parameters

NameDefaultDescription
UNN

Parameters

NameTypeDescription
nodesStreamSource<RelatedTo<N, UN>>
example
const b = ArrowValuedGraphHashed
.of([[1, 2, 'a'], [2, 3, 'b']])
.toBuilder()
b.removeNodes([1, 6, 7]) // => true
b.removeNodes([6, 7]) // => false

Overrides

Builder.removeNodes