Beispiel #1
0
/**
 * This takes in a require node and reprints it. This should remove whitespace
 * and allow us to have a consistent formatting of all requires.
 */
function reprintRequireHelper(node: Node): Node {
  if (jscs.ExpressionStatement.check(node)) {
    return statement`${node.expression}`;
  }

  if (jscs.VariableDeclaration.check(node)) {
    const kind = node.kind || 'const';
    const declaration = node.declarations[0];
    if (jscs.Identifier.check(declaration.id)) {
      return jscs.variableDeclaration(
        kind,
        [jscs.variableDeclarator(declaration.id, declaration.init)],
      );
    } else if (jscs.ObjectPattern.check(declaration.id)) {
      declaration.id.properties.sort((prop1, prop2) => {
        return compareStrings(prop1.key.name, prop2.key.name);
      });
      return jscs.variableDeclaration(
        kind,
        [jscs.variableDeclarator(
          oneLineObjectPattern(declaration.id),
          declaration.init,
        )],
      );
    } else if (jscs.ArrayPattern.check(declaration.id)) {
      return jscs.variableDeclaration(
        kind,
        [jscs.variableDeclarator(declaration.id, declaration.init)],
      );
    }
  }

  if (jscs.ImportDeclaration.check(node) && node.importKind === 'type') {
    // Sort the specifiers.
    node.specifiers.sort((one, two) => compareStrings(
      one.local.name,
      two.local.name,
    ));
    // TODO: Properly remove new lines from the node.
    return node;
  }

  return node;
}
Beispiel #2
0
function reprintNode(node) {
  if (j.ExpressionStatement.check(node)) {
    return statement`${node.expression}`;
  }

  if (j.VariableDeclaration.check(node)) {
    const declaration = node.declarations[0];
    return j.variableDeclaration(node.kind, [
      j.variableDeclarator(declaration.id, declaration.init),
    ]);
  }

  if (j.ImportDeclaration.check(node) && node.importKind === 'type') {
    // TODO: Properly remove new lines from the node.
    return node;
  }

  return node;
}