Skip to content

Commit 0ab6c08

Browse files
author
wanderer
committed
return tree node when setting value
Signed-off-by: wanderer <mjbecze@gmail.com>
1 parent 3228beb commit 0ab6c08

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ module.exports = class RadixTree {
8080
}
8181

8282
/**
83-
* stores a value at a given key
83+
* stores a value at a given key returning the tree node that the value was saved in
8484
* @param {*} key
8585
* @return {Promise}
8686
*/
@@ -92,11 +92,13 @@ module.exports = class RadixTree {
9292
async _set (key, value) {
9393
if (treeNode.isEmpty(this.root)) {
9494
this.root['/'] = createNode(key, [null, null], value)['/']
95+
return this.root['/']
9596
} else {
96-
let {root, extensionIndex, extension, index, value: rValue} = await this._get(key)
97+
let {node, root, extensionIndex, extension, index, value: rValue} = await this._get(key)
9798

9899
if (rValue) {
99100
treeNode.setValue(root, value)
101+
return node
100102
} else {
101103
if (extensionIndex !== undefined) {
102104
// split the extension node in two
@@ -120,15 +122,17 @@ module.exports = class RadixTree {
120122
const rootBranch = treeNode.getBranch(root)
121123
rootBranch[keySegment] = newNode
122124
treeNode.setBranch(root, rootBranch)
125+
return newNode['/']
123126
} else {
124127
treeNode.setValue(root, value)
128+
return root['/']
125129
}
126130
}
127131
}
128132
}
129133

130134
/**
131-
* deletes a value at a given key
135+
*smContainer.js deletes a value at a given key
132136
* @param {*} key
133137
* @return {Promise}
134138
*/

0 commit comments

Comments
 (0)