diff --git a/.gitignore b/.gitignore index 0b3cb79fd9fca0b6513ffc7fa9100a6c7f6b0a50..8c8bf6105435293d0922b5799496d52498c19169 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +test.bin native/target native/index.node native/artifacts.json diff --git a/lib/index.js b/lib/index.js index 7b577e2e8df35b50587f9b8cb66da368281bea7a..e3bb6c8ea70f15f2b1fd81a249267336e708fcf3 100644 --- a/lib/index.js +++ b/lib/index.js @@ -90,25 +90,44 @@ const WotB = { return addon.set_max_links(this.instanceID, maxCert); }, - addNode: function() { - return addon.add_node(this.instanceID); + var result = addon.add_node(this.instanceID); + if (this.filePath.length > 0) { + this.write(); + } + return result; }, removeNode: function() { - return addon.rem_node(this.instanceID); + var result = addon.rem_node(this.instanceID); + if (this.filePath.length > 0) { + this.write(); + } + return result; }, setEnabled: function(is_enabled, nodeId) { - return addon.set_enabled(this.instanceID, is_enabled, nodeId); + var result = addon.set_enabled(this.instanceID, is_enabled, nodeId); + if (this.filePath.length > 0) { + this.write(); + } + return result; }, addLink: function(source, target) { - return addon.add_link(this.instanceID, source, target); + var result = addon.add_link(this.instanceID, source, target); + if (this.filePath.length > 0) { + this.write(); + } + return result; }, removeLink: function(source, target) { - return addon.rem_link(this.instanceID, source, target); + var result = addon.rem_link(this.instanceID, source, target); + if (this.filePath.length > 0) { + this.write(); + } + return result; }, isOutdistanced: function(node, sentry_requirement, step_max, x_percent) { @@ -136,5 +155,14 @@ const WotB = { clear: function() { return addon.remove_wot(this.instanceID); + }, + + resetWoT: function() { + var sigStock = addon.getMaxCert(this.instanceID); + addon.remove_wot(this.instanceID); + this.instanceID = addon.new_memory_instance(sigStock); + if (filePath.length > 0) { + this.write(); + } } } \ No newline at end of file