UNPKG

node-amy

Version:

A HTML template framework without client-side JavaScript dependencies

28 lines (22 loc) 626 B
'use strict' /** */ class Builder { /** * @param {Node} node a parsed node that will be the target of the returned path * @returns {Array<Number>} an array of indices, i.e. [2,1,3] */ buildPathFromParentToNode(node) { const path = [] while (node.parent.type !== 'root') { path.push(this._countPreviousSiblings(node)) node = node.parent } return path.reverse() } _countPreviousSiblings(node) { let count = 0 for (; node.prev != null; node = node.prev, count++) { } return count } } module.exports = Builder