UNPKG

next

Version:

The React Framework

4 lines 1.94 kB
"use strict";exports.__esModule=true;exports.default=NoAnonymousDefaultExport;var _chalk=_interopRequireDefault(require("chalk"));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function NoAnonymousDefaultExport({types:t,...babel}){let onWarning=null;babel.caller(caller=>{onWarning=caller.onWarning;return'';// Intentionally empty to not invalidate cache });if(typeof onWarning!=='function'){return{visitor:{}};}const warn=onWarning;return{visitor:{ExportDefaultDeclaration(path){const def=path.node.declaration;if(!(def.type==='ArrowFunctionExpression'||def.type==='FunctionDeclaration')){return;}switch(def.type){case'ArrowFunctionExpression':{warn([_chalk.default.yellow.bold('Anonymous arrow functions cause Fast Refresh to not preserve local component state.'),'Please add a name to your function, for example:','',_chalk.default.bold('Before'),_chalk.default.cyan('export default () => <div />;'),'',_chalk.default.bold('After'),_chalk.default.cyan('const Named = () => <div />;'),_chalk.default.cyan('export default Named;'),'',`A codemod is available to fix the most common cases: ${_chalk.default.cyan('https://nextjs.link/codemod-ndc')}`].join('\n'));break;}case'FunctionDeclaration':{const isAnonymous=!Boolean(def.id);if(isAnonymous){warn([_chalk.default.yellow.bold('Anonymous function declarations cause Fast Refresh to not preserve local component state.'),'Please add a name to your function, for example:','',_chalk.default.bold('Before'),_chalk.default.cyan('export default function () { /* ... */ }'),'',_chalk.default.bold('After'),_chalk.default.cyan('export default function Named() { /* ... */ }'),'',`A codemod is available to fix the most common cases: ${_chalk.default.cyan('https://nextjs.link/codemod-ndc')}`].join('\n'));}break;}default:{// eslint-disable-next-line @typescript-eslint/no-unused-vars const _=def;}}}}};} //# sourceMappingURL=no-anonymous-default-export.js.map