UNPKG

eslint-plugin-canonical

Version:
49 lines (48 loc) 1.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const utilities_1 = require("../utilities"); const ExportMap_1 = __importDefault(require("./ExportMap")); // eslint-disable-next-line @typescript-eslint/no-explicit-any const ExportMap = ExportMap_1.default; exports.default = (0, utilities_1.createRule)({ create: (context) => { return { ExportAllDeclaration(node) { if (node.exported) { return; } const exportMap = ExportMap.get(node.source.value, context); if (exportMap === null) { return; } const exportNames = [ ...Array.from(exportMap.namespace.keys()).filter((key) => key !== 'default'), ...Array.from(exportMap.reexports.keys()), ]; context.report({ fix(fixer) { return fixer.replaceTextRange(node.range, `export { ${exportNames.join(', ')} } from '${node.source.value}';`); }, messageId: 'noExportAll', node, }); }, }; }, defaultOptions: [], meta: { docs: { description: 'Requite that re-exports are named', }, fixable: 'code', messages: { noExportAll: 'Must not use export *', }, schema: [], type: 'layout', }, name: 'no-export-all', });