How to use the isForStatement function from @babel/types

Find comprehensive JavaScript @babel/types.isForStatement code examples handpicked from public code repositorys.

@babel/types.isForStatement is a method that checks whether a given node is a for statement or not.

119
120
121
122
123
124
125
126
127
128
129
function isInForLoopCondition(path) {
  // Return whether if we're in the init/test/update parts of a for loop (but
  // not the body). Mutating variables in the init/test/update will likely
  // modify loop variables and cause infinite loops.
  const forStatementChild = path.find(
      p => p.parent && babelTypes.isForStatement(p.parent));


  return (forStatementChild && forStatementChild.parentKey !== 'body');
}

fork icon46
star icon35
watch icon0

567
568
569
570
571
572
573
574
575
576

//   traverse(this._ast, {
//     SwitchCase: (path) => {
//       const { node } = path;
//       if (
//         t.isForStatement(path.parentPath.parentPath.node) &&
//         path.parentPath.parentPath.node.test.value === MAIN_FOR_STATEMENT_TEST
//       ) {
//         if (node.test) {
//           caseToPath.set(
fork icon0
star icon6
watch icon1

+ 36 other calls in file

How does @babel/types.isForStatement work?

@babel/types.isForStatement is a function that checks if a given object is a for loop statement node in the abstract syntax tree (AST) generated by Babel. It takes an object as an argument and returns true if it is a for loop statement node, otherwise, it returns false. To determine if an object is a for loop statement node, @babel/types.isForStatement checks if the object has a specific set of properties and values that are unique to for loop statement nodes in the AST.

261
262
263
264
265
266
267
268
269
270
  expression: node
}) || exportDefault && t.isExportDefaultDeclaration(parent, {
  declaration: node
}) || arrowBody && t.isArrowFunctionExpression(parent, {
  body: node
}) || forHead && t.isForStatement(parent, {
  init: node
}) || forInHead && t.isForInStatement(parent, {
  left: node
}) || forOfHead && t.isForOfStatement(parent, {
fork icon0
star icon0
watch icon0

+ 2 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const t = require("@babel/types");

const forLoop = t.forStatement(
  t.variableDeclaration("let", [
    t.variableDeclarator(t.identifier("i"), t.numericLiteral(0)),
  ]),
  t.binaryExpression("<", t.identifier("i"), t.numericLiteral(10)),
  t.updateExpression("++", t.identifier("i")),
  t.blockStatement([
    t.expressionStatement(
      t.callExpression(t.identifier("console.log"), [t.identifier("i")])
    ),
  ])
);

console.log(t.isForStatement(forLoop)); // true

In this example, we create a for loop using @babel/types functions and then use t.isForStatement to check whether the created node is a for loop or not. The output of the console.log statement will be true, indicating that the created node is a for loop.

Other functions in @babel/types

Sorted by popularity

function icon

@babel/types.identifier is the most popular function in @babel/types (20936 examples)