Skip to content

⬅️ Back to Table of Contents

📄 prefer-regexp-exec.ts

📊 Analysis Summary

Metric Count
🔧 Functions 52
📦 Imports 8
📊 Variables & Constants 4
🎯 Enums 1

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/prefer-regexp-exec.ts

📦 Imports

Name Source
TSESTree @typescript-eslint/utils
AST_NODE_TYPES @typescript-eslint/utils
createRule ../util
getParserServices ../util
getStaticValue ../util
getTypeName ../util
getWrappingFixer ../util
isStaticMemberAccessOfValue ../util

Variables & Constants

Name Type Kind Value Exported
result ArgumentType let/var ArgumentType.Other
objectNode any const memberNode.object
callNode TSESTree.CallExpression const memberNode.parent as TSESTree.CallExpression
regExp RegExp let/var *not shown*

Functions

isStringType(type: ts.Type): boolean

Code
function isStringType(type: ts.Type): boolean {
      return getTypeName(checker, type) === 'string';
    }
  • JSDoc:

    /**
         * Check if a given node type is a string.
         * @param type The node type to check.
         */
    

  • Parameters:

  • type: ts.Type
  • Return Type: boolean
  • Calls:
  • getTypeName (from ../util)

isRegExpType(type: ts.Type): boolean

Code
function isRegExpType(type: ts.Type): boolean {
      return getTypeName(checker, type) === 'RegExp';
    }
  • JSDoc:

    /**
         * Check if a given node type is a RegExp.
         * @param type The node type to check.
         */
    

  • Parameters:

  • type: ts.Type
  • Return Type: boolean
  • Calls:
  • getTypeName (from ../util)

collectArgumentTypes(types: ts.Type[]): ArgumentType

Code
function collectArgumentTypes(types: ts.Type[]): ArgumentType {
      let result = ArgumentType.Other;

      for (const type of types) {
        if (isRegExpType(type)) {
          result |= ArgumentType.RegExp;
        } else if (isStringType(type)) {
          result |= ArgumentType.String;
        }
      }

      return result;
    }
  • Parameters:
  • types: ts.Type[]
  • Return Type: ArgumentType
  • Calls:
  • isRegExpType
  • isStringType

definitelyDoesNotContainGlobalFlag(node: TSESTree.CallExpressionArgument): boolean

Code
function definitelyDoesNotContainGlobalFlag(
      node: TSESTree.CallExpressionArgument,
    ): boolean {
      if (
        (node.type === AST_NODE_TYPES.CallExpression ||
          node.type === AST_NODE_TYPES.NewExpression) &&
        node.callee.type === AST_NODE_TYPES.Identifier &&
        node.callee.name === 'RegExp'
      ) {
        const flags = node.arguments.at(1);
        return !(
          flags?.type === AST_NODE_TYPES.Literal &&
          typeof flags.value === 'string' &&
          flags.value.includes('g')
        );
      }

      return false;
    }
  • JSDoc:

    /**
         * Returns true if and only if we have syntactic proof that the /g flag is
         * absent. Returns false in all other cases (i.e. it still might or might
         * not contain the global flag).
         */
    

  • Parameters:

  • node: TSESTree.CallExpressionArgument
  • Return Type: boolean
  • Calls:
  • node.arguments.at
  • flags.value.includes

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string): string

Code
objectCode => `${regExp.toString()}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `${argumentCode}.exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

wrap(objectCode: string, argumentCode: string): string

Code
(objectCode, argumentCode) =>
                  `RegExp(${argumentCode}).exec(${objectCode})`
  • Parameters:
  • objectCode: string
  • argumentCode: string
  • Return Type: string

Enums

enum ArgumentType

Enum Code
enum ArgumentType {
  Other = 0,
  String = 1 << 0,
  RegExp = 1 << 1,
  Both = String | RegExp,
}

Members

Name Value Description
Other 0
String 1 << 0
RegExp 1 << 1
Both String | RegExp