All files / lib/tasks parse-new-tree.js

100% Statements 36/36
100% Branches 5/5
100% Functions 1/1
100% Lines 36/36

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 375x 5x 5x 5x 5x 5x 5x 5x 529x 529x 529x 529x 529x 389x 389x 389x 389x 389x 389x 389x 389x 353x 353x 389x 389x 389x 389x 389x 389x 389x 389x 389x 389x 389x 389x 529x  
import parse from '../util/parse';
import createTree from '../tree/create';
import Transaction from '../transaction';
 
/**
 * @param {Transaction} transaction
 */
export default function parseNewTree(transaction) {
  const { state, input, config: options } = transaction;
  const { measure } = state;
  const { inner } = options;
 
  if (typeof input === 'string') {
    measure('parsing input for new tree');
 
    const { childNodes } = parse(input, undefined, options);
 
    let vTree;
 
    // If we are dealing with innerHTML, use all the Nodes.
    if (inner) {
      vTree = createTree(childNodes);
    }
    // If we are dealing with outerHTML, use the first element or the element
    // itself.
    else {
      vTree = createTree(childNodes[0] || childNodes);
    }
 
    if (vTree) {
      transaction.newTree = vTree;
    }
 
    measure('parsing input for new tree');
  }
}