From b590eaa2f64ead3384eadc6fe58f6358aa1a0478 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Wed, 22 Dec 2021 16:39:34 +0100 Subject: reworked build system; added missing license notices --- common/patterns_query_tree.js | 27 +++++++-------------------- 1 file changed, 7 insertions(+), 20 deletions(-) (limited to 'common/patterns_query_tree.js') 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 -- cgit v1.2.3