Skip to content

⬅️ Back to Table of Contents

📄 no-typescript-estree-import

📊 Analysis Summary

Metric Count
🔧 Functions 1
📦 Imports 1
📊 Variables & Constants 3

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin-internal/src/rules/no-typescript-estree-import.ts

📤 Default Export

export default createRule({ ... })
Property Value
name 'no-typescript-estree-import'
meta.type 'problem'
meta.docs.description Enforce that eslint-plugin rules don't require anything from ${TSESTREE_NAME} or ${TYPES_NAME}
meta.fixable 'code'
meta.messages.dontImportPackage [ Don't import from {{packageName}}. Everything you need should be available in ${UTILS_NAME}., `{{packageName}} is...
meta.schema []
defaultOptions []

Entry point: create — documented under Functions.


📦 Imports

Name Source
createRule ../util/index.js

Variables & Constants

Name Type Kind Value Exported
TSESTREE_NAME "@typescript-eslint/typescript-estree" const '@typescript-eslint/typescript-estree'
TYPES_NAME "@typescript-eslint/types" const '@typescript-eslint/types'
UTILS_NAME "@typescript-eslint/utils" const '@typescript-eslint/utils'

Functions

create(context: any): { ImportDeclaration(node: any): void; }

Parameters:

  • context any

Returns: { ImportDeclaration(node: any): void; }

Calls:

  • node.source.value.startsWith
  • context.report
  • fixer.replaceTextRange
Code
create(context) {
    return {
      ImportDeclaration(node): void {
        if (typeof node.source.value !== 'string') {
          return;
        }

        let packageName: string | null = null;
        if (node.source.value.startsWith(TSESTREE_NAME)) {
          packageName = TSESTREE_NAME;
        } else if (node.source.value.startsWith(TYPES_NAME)) {
          packageName = TYPES_NAME;
        }

        if (packageName != null) {
          context.report({
            node,
            messageId: 'dontImportPackage',
            data: {
              packageName,
            },
            fix(fixer) {
              return fixer.replaceTextRange(
                [node.source.range[0] + 1, node.source.range[1] - 1],
                UTILS_NAME,
              );
            },
          });
        }
      },
    };
  }

Generated by Syntax Scribe