Path: blob/main/src/rules/no-default-export.js
829 views
import docsUrl from '../docsUrl';12module.exports = {3meta: {4type: 'suggestion',5docs: {6url: docsUrl('no-default-export'),7},8schema: [],9},1011create(context) {12// ignore non-modules13if (context.parserOptions.sourceType !== 'module') {14return {};15}1617const preferNamed = 'Prefer named exports.';18const noAliasDefault = ({ local }) => `Do not alias \`${local.name}\` as \`default\`. Just export \`${local.name}\` itself instead.`;1920return {21ExportDefaultDeclaration(node) {22const { loc } = context.getSourceCode().getFirstTokens(node)[1] || {};23context.report({ node, message: preferNamed, loc });24},2526ExportNamedDeclaration(node) {27node.specifiers.filter(specifier => specifier.exported.name === 'default').forEach(specifier => {28const { loc } = context.getSourceCode().getFirstTokens(node)[1] || {};29if (specifier.type === 'ExportDefaultSpecifier') {30context.report({ node, message: preferNamed, loc });31} else if (specifier.type === 'ExportSpecifier') {32context.report({ node, message: noAliasDefault(specifier), loc });33}34});35},36};37},38};394041