@@ -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