From 7e5e1ec8a82691770751da8dacebc10d456dda0d Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Mon, 15 Aug 2022 02:11:56 +0200 Subject: [PATCH] fix(tracker): version check fix; few comments --- tracker/tracker/src/main/app/guards.ts | 6 +++++- tracker/tracker/src/main/app/index.ts | 12 +++++++++--- tracker/tracker/src/main/app/nodes.ts | 2 ++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/tracker/tracker/src/main/app/guards.ts b/tracker/tracker/src/main/app/guards.ts index 384c9a184..f88abc293 100644 --- a/tracker/tracker/src/main/app/guards.ts +++ b/tracker/tracker/src/main/app/guards.ts @@ -10,7 +10,11 @@ export function isTextNode(node: Node): node is Text { return node.nodeType === Node.TEXT_NODE } -export function isRootNode(node: Node): boolean { +export function isDocument(node: Node): node is Document { + return node.nodeType === Node.DOCUMENT_NODE +} + +export function isRootNode(node: Node): node is Document | DocumentFragment { return node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE } diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index 145ee1d01..1e405c2bf 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -83,7 +83,7 @@ export default class App { readonly localStorage: Storage readonly sessionStorage: Storage private readonly messages: Array = [] - private readonly observer: Observer + /* private */ readonly observer: Observer // non-privat for attachContextCallback private readonly startCallbacks: Array = [] private readonly stopCallbacks: Array<() => any> = [] private readonly commitCallbacks: Array = [] @@ -256,7 +256,13 @@ export default class App { const reqVer = version.split(/[.-]/) const ver = this.version.split(/[.-]/) for (let i = 0; i < 3; i++) { - if (Number(ver[i]) < Number(reqVer[i]) || isNaN(Number(ver[i])) || isNaN(Number(reqVer[i]))) { + if (isNaN(Number(ver[i])) || isNaN(Number(reqVer[i]))) { + return false + } + if (Number(ver[i]) > Number(reqVer[i])) { + return true + } + if (Number(ver[i]) < Number(reqVer[i])) { return false } } @@ -298,7 +304,7 @@ export default class App { if (typeof this.options.resourceBaseHref === 'string') { return this.options.resourceBaseHref } else if (typeof this.options.resourceBaseHref === 'object') { - //switch between types + //TODO: switch between types } if (document.baseURI) { return document.baseURI diff --git a/tracker/tracker/src/main/app/nodes.ts b/tracker/tracker/src/main/app/nodes.ts index 67bb51e05..a90eec262 100644 --- a/tracker/tracker/src/main/app/nodes.ts +++ b/tracker/tracker/src/main/app/nodes.ts @@ -8,9 +8,11 @@ export default class Nodes { constructor(private readonly node_id: string) {} + // Attached once per Tracker instance attachNodeCallback(nodeCallback: NodeCallback): void { this.nodeCallbacks.push(nodeCallback) } + // TODO: what is the difference with app.attachEventListener. can we use only one of those? attachElementListener(type: string, node: Element, elementListener: EventListener): void { const id = this.getID(node) if (id === undefined) {