pure-graph-utils v1.4.19
pure-graph-utils
Graph generation and handling utils, built with pure functions.
Disclaimer
This project is no longer being maintained.
Table of contents
Installation
npm install pure-graph-utilsAPI
To get a better grasp of each function's behavior, please check the tests file.
createNode(id, value)
Returns an object with an 'id' and a 'value' properties.
createNode('nodeId', 'nodeValue')
// Output
{
id: 'nodeId',
value: 'nodeValue'
}changeNodeId(newId, node)
Returns a new node with newNode.id === newId.
changeNodeId(
'newId',
createNode('nodeId', 'nodeValue')
)
// Output
{
id: 'newId',
value: 'nodeValue'
}addNodeProperty(propKey, propValue, node)
Returns a new node with newNode[propKey] === propValue.
addNodeProperty(
'extraProperty',
'extraPropertyValue',
createNode('nodeId', 'nodeValue')
)
// Output
{
extraProperty: 'extraPropertyValue',
id: 'nodeId',
value: 'nodeValue'
}editNodeProperty(propKey, propNewValue, node)
Returns a new node with newNode[propKey] === propNewValue.
editNodeProperty(
'value',
'newValue',
createNode('nodeId', 'nodeValue')
)
// Output
{
id: 'nodeId',
value: 'newValue'
}removeNodeProperty(propKey, node)
Returns a new node without propKey.
removeNodeProperty(
'value',
createNode('nodeId', 'nodeValue')
)
// Output
{
id: 'nodeId',
}createGraph(node)
Returns an object with node.
createGraph(createNode('nodeId', 'nodeValue'))
// Output
{
nodeId: {
connections: [],
id: 'nodeId',
value: 'nodeValue'
}
}changeGraphNodeId(nodeId, nodeNewId, graph)
Returns a new graph with graph[nodeId] adapted to newGraph[nodeNewId].
changeGraphNodeId(
'nodeId',
'nodeNewId',
createGraph(createNode('nodeId', 'nodeValue'))
)
// Output
{
nodeNewId: {
connections: [],
id: 'nodeNewId',
value: 'nodeValue'
}
}addNode(node, graph)
Returns a new graph with node.
addNode(
createNode('id2', 'value2'),
createGraph(createNode('id1', 'value1'))
)
// Output
{
id1: {
connections: [],
id: 'id1',
value: 'value1'
},
id2: {
connections: [],
id: 'id2',
value: 'value2'
}
}addGraphNodeProperty(nodeId, propKey, propValue, graph)
Returns a new graph with newGraph[nodeId][propKey] === propValue.
addGraphNodeProperty(
'nodeId',
'extraProperty',
'extraPropertyValue',
createGraph(createNode('nodeId', 'nodeValue'))
)
// Output
{
nodeId: {
connections: [],
extraProperty: 'extraPropertyValue',
id: 'nodeId',
value: 'nodeValue'
}
}editGraphNodeProperty(nodeId, propKey, propNewValue, graph)
Returns a new graph with newGraph[nodeId][propKey] === propNewValue.
editGraphNodeProperty(
'nodeId',
'value',
'newValue',
createGraph(createNode('nodeId', 'nodeValue'))
)
// Output
{
nodeId: {
connections: [],
id: 'nodeId',
value: 'newValue'
}
}removeGraphNodeProperty(nodeId, propKey, graph)
Returns a new graph without graph[nodeId]'s propKey.
removeGraphNodeProperty(
'nodeId',
'value',
createGraph(createNode('nodeId', 'nodeValue'))
)
// Output
{
nodeId: {
connections: [],
id: 'nodeId'
}
}addConnection(nodeAId, nodeBId, graph)
Returns a new graph with nodeA and nodeB connected.
addConnection(
'id1',
'id2',
addNode(
createNode('id2', 'value2'),
createGraph(createNode('id1', 'value1'))
)
)
// Output
{
id1: {
connections: ['id2'],
id: 'id1',
value: 'value1'
},
id2: {
connections: ['id1'],
id: 'id2',
value: 'value2'
}
}removeConnection(nodeAId, nodeBId, graph)
Returns a new graph with nodeA and nodeB disconnected.
removeConnection(
'id1',
'id2',
addConnection(
'id1',
'id2',
addNode(
createNode('id2', 'value2'),
createGraph(createNode('id1', 'value1'))
)
)
)
// Output
{
id1: {
connections: [],
id: 'id1',
value: 'value1'
},
id2: {
connections: [],
id: 'id2',
value: 'value2'
}
}removeAllConnections(nodeId, graph)
Returns a new graph with graph[nodeId] disconnected from other nodes.
removeAllConnections(
'id1',
addConnection(
'id2',
'id3',
addConnection(
'id1',
'id3',
addConnection(
'id1',
'id2',
addNode(
createNode('id3', 'value3'),
addNode(
createNode('id2', 'value2'),
createGraph(createNode('id1', 'value1'))
)
)
)
)
)
)
// Output
{
id1: {
connections: [],
id: 'id1',
value: 'value1'
},
id2: {
connections: ['id3'],
id: 'id2',
value: 'value2'
},
id3: {
connections: ['id2'],
id: 'id3',
value: 'value3'
}
}removeNode(nodeId, graph)
Returns a new graph without graph[nodeId].
removeNode(
'id1',
addNode(
createNode('id2', 'value2'),
createGraph(createNode('id1', 'value1'))
)
)
// Output
{
id2: {
connections: [],
id: 'id2',
value: 'value2'
}
}Development
Testing
Single run
npm run testWatch mode
npm run test:watchBuilding
npm run build3 years ago
4 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago