aboutsummaryrefslogtreecommitdiff
path: root/common/entities.js
diff options
context:
space:
mode:
authorWojtek Kosior <koszko@koszko.org>2022-06-18 13:51:20 +0200
committerWojtek Kosior <koszko@koszko.org>2022-06-18 13:51:20 +0200
commit1f9ccef9b99a1adfa53cf1a22543f4bdbe2ac068 (patch)
tree2dcaaed5343b4aa8bb83eeaa447b7f958a40c933 /common/entities.js
parentf33dbdee39953f145bb986a7488e65e55e25d49d (diff)
downloadbrowser-extension-1f9ccef9b99a1adfa53cf1a22543f4bdbe2ac068.tar.gz
browser-extension-1f9ccef9b99a1adfa53cf1a22543f4bdbe2ac068.zip
restore compatibility with IceCat 60
This commit also fixes the --driver option to configure script.
Diffstat (limited to 'common/entities.js')
-rw-r--r--common/entities.js31
1 files changed, 22 insertions, 9 deletions
diff --git a/common/entities.js b/common/entities.js
index 41d6e3b..c24999e 100644
--- a/common/entities.js
+++ b/common/entities.js
@@ -117,24 +117,37 @@ function* get_used_files(item)
#EXPORT get_used_files AS get_files
/*
- * Regex to parse URIs like:
+ * Function to parse URIs like:
* https://hydrilla.koszko.org/schemas/api_mapping_description-2.schema.json
*/
-const name_base_re = "(?<name_base>[^/]*)";
-const major_number_re = "(?<major>[1-9][0-9]*)";
+const name_base_re = "([^/]*)";
+const major_number_re = "([1-9][0-9]*)";
const minor_number_re = "(?:[1-9][0-9]*|0)";
const numbers_rest_re = `(?:\\.${minor_number_re})*`;
-const version_re = `(?<ver>${major_number_re}${numbers_rest_re})`;
+const version_re = `(${major_number_re}${numbers_rest_re})`;
const schema_name_re = `${name_base_re}-${version_re}\\.schema\\.json`;
-const haketilo_schema_name_regex = new RegExp(schema_name_re);
-#EXPORT haketilo_schema_name_regex
+const schema_name_regex = new RegExp(schema_name_re);
+
+const schema_name_parts = ["full", "name_base", "version", "major"];
+
+function parse_schema_uri(uri) {
+ const match = schema_name_regex.exec(uri);
+ if (!match)
+ return match;
+
+ const result = {};
+
+ for (let i = 0; i < schema_name_parts.length; i++)
+ result[schema_name_parts[i]] = match[i];
+
+ return result
+}
+#EXPORT parse_schema_uri
/* Extract the number that indicates entity's compatibility mode. */
function get_schema_major_version(instance) {
- const match = haketilo_schema_name_regex.exec(instance.$schema);
-
- return parseInt(match.groups.major);
+ return parseInt(parse_schema_uri(instance.$schema).major);
}
#EXPORT get_schema_major_version