diff options
Diffstat (limited to 'packages/astro-parser/src/utils/nodes_match.ts')
-rw-r--r-- | packages/astro-parser/src/utils/nodes_match.ts | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/packages/astro-parser/src/utils/nodes_match.ts b/packages/astro-parser/src/utils/nodes_match.ts deleted file mode 100644 index 941025f52..000000000 --- a/packages/astro-parser/src/utils/nodes_match.ts +++ /dev/null @@ -1,35 +0,0 @@ -// @ts-nocheck - -/** Compare two TemplateNodes to determine if they are equivalent */ -export function nodes_match(a, b) { - if (!!a !== !!b) return false; - if (Array.isArray(a) !== Array.isArray(b)) return false; - - if (a && typeof a === 'object') { - if (Array.isArray(a)) { - if (a.length !== b.length) return false; - return a.every((child, i) => nodes_match(child, b[i])); - } - - const a_keys = Object.keys(a).sort(); - const b_keys = Object.keys(b).sort(); - - if (a_keys.length !== b_keys.length) return false; - - let i = a_keys.length; - while (i--) { - const key = a_keys[i]; - if (b_keys[i] !== key) return false; - - if (key === 'start' || key === 'end') continue; - - if (!nodes_match(a[key], b[key])) { - return false; - } - } - - return true; - } - - return a === b; -} |