aboutsummaryrefslogtreecommitdiff
path: root/common/patterns_query_tree.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2021-12-22 16:39:34 +0100
committerWojtek Kosior <koszko@koszko.org>2021-12-22 16:39:34 +0100
commitb590eaa2f64ead3384eadc6fe58f6358aa1a0478 (patch)
tree8f1e9403c1a75246c2a9a0afc4ab30706ea7afbe /common/patterns_query_tree.js
parentb7378a9994724750198e0d165c575be8538334fb (diff)
downloadbrowser-extension-b590eaa2f64ead3384eadc6fe58f6358aa1a0478.tar.gz
browser-extension-b590eaa2f64ead3384eadc6fe58f6358aa1a0478.zip
reworked build system; added missing license notices
Diffstat (limited to 'common/patterns_query_tree.js')
-rw-r--r--common/patterns_query_tree.js27
1 files changed, 7 insertions, 20 deletions
diff --git a/common/patterns_query_tree.js b/common/patterns_query_tree.js
index 49205c5..1bbdb39 100644
--- a/common/patterns_query_tree.js
+++ b/common/patterns_query_tree.js
@@ -41,17 +41,16 @@
* proprietary program, I am not going to enforce this in court.
*/
-/*
- * IMPORTS_START
- * IMPORT deconstruct_url
- * IMPORTS_END
- */
+#FROM common/patterns.js IMPORT deconstruct_url
/* "Pattern Tree" is how we refer to the data structure used for querying
* Haketilo patterns. Those look like 'https://*.example.com/ab/***'. The goal
* is to make it possible for given URL to quickly retrieve all known patterns
* that match it.
*/
+const pattern_tree_make = () => ({})
+#EXPORT pattern_tree_make AS make
+
function empty_node() {
return {
wildcard_matches: [null, null, null],
@@ -134,8 +133,6 @@ function modify_sequence(tree_node, segments, item_modifier)
let removed = true;
for (var current_segment of segments) {
- wildcards = tree_node.wildcard_matches;
-
const child = tree_node.children[current_segment] || empty_node();
tree_node.children[current_segment] = child;
tree_node = child;
@@ -216,6 +213,7 @@ function pattern_tree_register(patterns_by_proto, pattern, item_name, item)
const add_item = obj => Object.assign(obj || {}, {[item_name]: item});
modify_tree(patterns_by_proto, pattern, add_item);
}
+#EXPORT pattern_tree_register AS register
/* Helper function for pattern_tree_deregister(). */
function _remove_item(obj, item_name)
@@ -240,6 +238,7 @@ function pattern_tree_deregister(patterns_by_proto, pattern, item_name)
const remove_item = obj => _remove_item(obj, item_name);
modify_tree(patterns_by_proto, pattern, remove_item);
}
+#EXPORT pattern_tree_deregister AS deregister
/*
* Yield registered items that match url. Each yielded value is an object with
@@ -281,16 +280,4 @@ function* pattern_tree_search(patterns_by_proto, url)
}
}
}
-
-const pattern_tree = {
- make: () => ({}),
- register: pattern_tree_register,
- deregister: pattern_tree_deregister,
- search: pattern_tree_search
-}
-
-/*
- * EXPORTS_START
- * EXPORT pattern_tree
- * EXPORTS_END
- */
+#EXPORT pattern_tree_search AS search