All files / src/binary-operator-printers exponentiation.js

100% Statements 6/6
100% Branches 4/4
100% Functions 2/2
100% Lines 6/6

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        56x   56x 1299x   489x                 489x   489x            
const {
  doc: {
    builders: { group, ifBreak, indent, softline }
  }
} = require('prettier');
 
module.exports = {
  match: (op) => op === '**',
  print: (node, path, print) => {
    const right = [
      ifBreak(' ', ''),
      node.operator,
      softline,
      path.call(print, 'right')
    ];
    // If it's a single binary operation, avoid having a small right
    // operand like - 1 on its own line
    const shouldGroup =
      node.left.type !== 'BinaryOperation' &&
      path.getParentNode().type !== 'BinaryOperation';
    return group([
      path.call(print, 'left'),
      indent(shouldGroup ? group(right) : right)
    ]);
  }
};