@monstermann/graph 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Graph/batch.d.mts +0 -1
- package/dist/Graph/create.d.mts +0 -1
- package/dist/Graph/findEdge.d.mts +0 -1
- package/dist/Graph/findEdges.d.mts +0 -1
- package/dist/Graph/findNeighbor.d.mts +0 -1
- package/dist/Graph/findNeighbors.d.mts +0 -1
- package/dist/Graph/findNode.d.mts +0 -1
- package/dist/Graph/findNodes.d.mts +0 -1
- package/dist/Graph/forEachEdge.d.mts +0 -1
- package/dist/Graph/forEachNeighbor.d.mts +0 -1
- package/dist/Graph/forEachNode.d.mts +0 -1
- package/dist/Graph/fromJS.d.mts +0 -1
- package/dist/Graph/getEdge.d.mts +0 -1
- package/dist/Graph/getEdges.d.mts +0 -1
- package/dist/Graph/getNeighbor.d.mts +0 -1
- package/dist/Graph/getNeighbors.d.mts +0 -1
- package/dist/Graph/getNode.d.mts +0 -1
- package/dist/Graph/getNodes.d.mts +0 -1
- package/dist/Graph/hasEdge.d.mts +0 -1
- package/dist/Graph/hasNode.d.mts +0 -1
- package/dist/Graph/index.d.mts +0 -1
- package/dist/Graph/internals/types.d.mts +1 -1
- package/dist/Graph/mapEdge.d.mts +0 -1
- package/dist/Graph/mapNode.d.mts +0 -1
- package/dist/Graph/mapNode.mjs +6 -6
- package/dist/Graph/mergeEdge.d.mts +0 -1
- package/dist/Graph/mergeNode.d.mts +0 -1
- package/dist/Graph/mergeNode.mjs +5 -5
- package/dist/Graph/removeEdge.d.mts +0 -1
- package/dist/Graph/removeEdge.mjs +4 -4
- package/dist/Graph/removeNode.d.mts +0 -1
- package/dist/Graph/removeNode.mjs +5 -5
- package/dist/Graph/setEdge.d.mts +0 -1
- package/dist/Graph/setEdge.mjs +4 -4
- package/dist/Graph/setNode.d.mts +0 -1
- package/dist/Graph/toJS.d.mts +0 -1
- package/package.json +1 -1
package/dist/Graph/batch.d.mts
CHANGED
package/dist/Graph/create.d.mts
CHANGED
package/dist/Graph/fromJS.d.mts
CHANGED
package/dist/Graph/getEdge.d.mts
CHANGED
package/dist/Graph/getNode.d.mts
CHANGED
package/dist/Graph/hasEdge.d.mts
CHANGED
package/dist/Graph/hasNode.d.mts
CHANGED
package/dist/Graph/index.d.mts
CHANGED
|
@@ -10,7 +10,7 @@ type TargetTypesMap = ReadonlyMap<any, TargetIdsMap>;
|
|
|
10
10
|
type TargetIdsMap = ReadonlyMap<NodeId, Edge>;
|
|
11
11
|
type NodeIdsMap<T extends Node, U extends NodeType<T> = NodeType<T>> = ReadonlyMap<NodeId, NodeOfType<T, U>>;
|
|
12
12
|
interface NodeTypesMap<T extends Node> extends ReadonlyMap<NodeType<T>, NodeIdsMap<T, NodeType<T>>> {
|
|
13
|
-
get: <V
|
|
13
|
+
get: <V extends NodeType<T>>(type: V) => NodeIdsMap<T, V> | undefined;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
export { Bimap, NodeTypesMap, SourceTypesMap };
|
package/dist/Graph/mapEdge.d.mts
CHANGED
package/dist/Graph/mapNode.d.mts
CHANGED
package/dist/Graph/mapNode.mjs
CHANGED
|
@@ -70,12 +70,12 @@ function mapNode(graph, node, update) {
|
|
|
70
70
|
const next = update(prev);
|
|
71
71
|
if (prev === next) return graph;
|
|
72
72
|
if (prev.id === next.id && prev.type === next.type) return setNode(graph, next);
|
|
73
|
-
return batch(graph, (graph
|
|
74
|
-
graph
|
|
75
|
-
const edges = graph
|
|
76
|
-
for (const [targetType, targetIds] of edges?.get(prev.type)?.get(prev.id) ?? []) for (const [targetId, targetData] of targetIds) graph
|
|
77
|
-
graph
|
|
78
|
-
return graph
|
|
73
|
+
return batch(graph, (graph) => {
|
|
74
|
+
graph = setNode(graph, next);
|
|
75
|
+
const edges = graph.get("edges");
|
|
76
|
+
for (const [targetType, targetIds] of edges?.get(prev.type)?.get(prev.id) ?? []) for (const [targetId, targetData] of targetIds) graph = setEdge(graph, [next.type, next.id], [targetType, targetId], targetData);
|
|
77
|
+
graph = removeNode(graph, prev);
|
|
78
|
+
return graph;
|
|
79
79
|
});
|
|
80
80
|
}
|
|
81
81
|
|
package/dist/Graph/mergeNode.mjs
CHANGED
|
@@ -46,13 +46,13 @@ import { mapNode } from "./mapNode.mjs";
|
|
|
46
46
|
*
|
|
47
47
|
*/
|
|
48
48
|
function mergeNode(graph, node, update) {
|
|
49
|
-
return mapNode(graph, node, (node
|
|
49
|
+
return mapNode(graph, node, (node) => {
|
|
50
50
|
const keys = Object.keys(update);
|
|
51
|
-
if (keys.length === 0) return node
|
|
52
|
-
return keys.some((k) => update[k] !== node
|
|
53
|
-
...node
|
|
51
|
+
if (keys.length === 0) return node;
|
|
52
|
+
return keys.some((k) => update[k] !== node[k]) ? {
|
|
53
|
+
...node,
|
|
54
54
|
...update
|
|
55
|
-
} : node
|
|
55
|
+
} : node;
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -48,22 +48,22 @@ import { unsetInGraph } from "./internals/core.mjs";
|
|
|
48
48
|
function removeEdge(graph, source, target) {
|
|
49
49
|
const [sourceType, sourceId] = parseNodeIdentifier(source);
|
|
50
50
|
const [targetType, targetId] = parseNodeIdentifier(target);
|
|
51
|
-
return batch(graph, (graph
|
|
52
|
-
graph
|
|
51
|
+
return batch(graph, (graph) => {
|
|
52
|
+
graph = unsetInGraph(graph, [
|
|
53
53
|
"edges",
|
|
54
54
|
sourceType,
|
|
55
55
|
sourceId,
|
|
56
56
|
targetType,
|
|
57
57
|
targetId
|
|
58
58
|
]);
|
|
59
|
-
graph
|
|
59
|
+
graph = unsetInGraph(graph, [
|
|
60
60
|
"edges",
|
|
61
61
|
targetType,
|
|
62
62
|
targetId,
|
|
63
63
|
sourceType,
|
|
64
64
|
sourceId
|
|
65
65
|
]);
|
|
66
|
-
return graph
|
|
66
|
+
return graph;
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -45,25 +45,25 @@ import { unsetInGraph } from "./internals/core.mjs";
|
|
|
45
45
|
*/
|
|
46
46
|
function removeNode(graph, node) {
|
|
47
47
|
const [sourceType, sourceId] = parseNodeIdentifier(node);
|
|
48
|
-
return batch(graph, (graph
|
|
49
|
-
for (const [targetType, targets] of graph
|
|
48
|
+
return batch(graph, (graph) => {
|
|
49
|
+
for (const [targetType, targets] of graph.get("edges")?.get(sourceType)?.get(sourceId) ?? []) for (const targetId of targets.keys()) graph = unsetInGraph(graph, [
|
|
50
50
|
"edges",
|
|
51
51
|
targetType,
|
|
52
52
|
targetId,
|
|
53
53
|
sourceType,
|
|
54
54
|
sourceId
|
|
55
55
|
]);
|
|
56
|
-
graph
|
|
56
|
+
graph = unsetInGraph(graph, [
|
|
57
57
|
"edges",
|
|
58
58
|
sourceType,
|
|
59
59
|
sourceId
|
|
60
60
|
]);
|
|
61
|
-
graph
|
|
61
|
+
graph = unsetInGraph(graph, [
|
|
62
62
|
"nodes",
|
|
63
63
|
sourceType,
|
|
64
64
|
sourceId
|
|
65
65
|
]);
|
|
66
|
-
return graph
|
|
66
|
+
return graph;
|
|
67
67
|
});
|
|
68
68
|
}
|
|
69
69
|
|
package/dist/Graph/setEdge.d.mts
CHANGED
package/dist/Graph/setEdge.mjs
CHANGED
|
@@ -55,22 +55,22 @@ function setEdge(graph, source, target, ...args) {
|
|
|
55
55
|
const [targetType, targetId] = parseNodeIdentifier(target);
|
|
56
56
|
if (!hasNode(graph, source)) return graph;
|
|
57
57
|
if (!hasNode(graph, target)) return graph;
|
|
58
|
-
return batch(graph, (graph
|
|
59
|
-
graph
|
|
58
|
+
return batch(graph, (graph) => {
|
|
59
|
+
graph = setInGraph(graph, [
|
|
60
60
|
"edges",
|
|
61
61
|
sourceType,
|
|
62
62
|
sourceId,
|
|
63
63
|
targetType,
|
|
64
64
|
targetId
|
|
65
65
|
], edge);
|
|
66
|
-
graph
|
|
66
|
+
graph = setInGraph(graph, [
|
|
67
67
|
"edges",
|
|
68
68
|
targetType,
|
|
69
69
|
targetId,
|
|
70
70
|
sourceType,
|
|
71
71
|
sourceId
|
|
72
72
|
], edge);
|
|
73
|
-
return graph
|
|
73
|
+
return graph;
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
|
package/dist/Graph/setNode.d.mts
CHANGED
package/dist/Graph/toJS.d.mts
CHANGED