Skip to content

⬅️ Back to Table of Contents

📄 no-useless-empty-export.ts

📊 Analysis Summary

Metric Count
🔧 Functions 6
📦 Imports 4
📊 Variables & Constants 3

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/no-useless-empty-export.ts

📦 Imports

Name Source
TSESTree @typescript-eslint/utils
AST_NODE_TYPES @typescript-eslint/utils
createRule ../util
isDefinitionFile ../util

Variables & Constants

Name Type Kind Value Exported
exportOrImportNodeTypes Set<any> const `new Set([
AST_NODE_TYPES.ExportAllDeclaration,
AST_NODE_TYPES.ExportDefaultDeclaration,
AST_NODE_TYPES.ExportNamedDeclaration,
AST_NODE_TYPES.ExportSpecifier,
AST_NODE_TYPES.ImportDeclaration,
AST_NODE_TYPES.TSExportAssignment,
AST_NODE_TYPES.TSImportEqualsDeclaration,
])`
emptyExports TSESTree.ExportNamedDeclaration[] const []
foundOtherExport boolean let/var false

Functions

isEmptyExport(node: TSESTree.Node): node is TSESTree.ExportNamedDeclaration

Code
function isEmptyExport(
  node: TSESTree.Node,
): node is TSESTree.ExportNamedDeclaration {
  return (
    node.type === AST_NODE_TYPES.ExportNamedDeclaration &&
    node.specifiers.length === 0 &&
    !node.declaration
  );
}
  • Parameters:
  • node: TSESTree.Node
  • Return Type: node is TSESTree.ExportNamedDeclaration

checkNode(node: TSESTree.Program | TSESTree.TSModuleDeclaration): void

Code
function checkNode(
      node: TSESTree.Program | TSESTree.TSModuleDeclaration,
    ): void {
      if (!Array.isArray(node.body)) {
        return;
      }

      const emptyExports: TSESTree.ExportNamedDeclaration[] = [];
      let foundOtherExport = false;

      for (const statement of node.body) {
        if (isEmptyExport(statement)) {
          emptyExports.push(statement);
        } else if (exportOrImportNodeTypes.has(statement.type)) {
          foundOtherExport = true;
        }
      }

      if (foundOtherExport) {
        for (const emptyExport of emptyExports) {
          context.report({
            node: emptyExport,
            messageId: 'uselessExport',
            fix: fixer => fixer.remove(emptyExport),
          });
        }
      }
    }
  • Parameters:
  • node: TSESTree.Program | TSESTree.TSModuleDeclaration
  • Return Type: void
  • Calls:
  • Array.isArray
  • isEmptyExport
  • emptyExports.push
  • exportOrImportNodeTypes.has
  • context.report
  • fixer.remove

fix(fixer: any): any

Code
fixer => fixer.remove(emptyExport)
  • Parameters:
  • fixer: any
  • Return Type: any
  • Calls:
  • fixer.remove

fix(fixer: any): any

Code
fixer => fixer.remove(emptyExport)
  • Parameters:
  • fixer: any
  • Return Type: any
  • Calls:
  • fixer.remove

fix(fixer: any): any

Code
fixer => fixer.remove(emptyExport)
  • Parameters:
  • fixer: any
  • Return Type: any
  • Calls:
  • fixer.remove

fix(fixer: any): any

Code
fixer => fixer.remove(emptyExport)
  • Parameters:
  • fixer: any
  • Return Type: any
  • Calls:
  • fixer.remove