Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,27 @@ const compat = new FlatCompat({

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
{
rules: {
// #495: this codebase has no components/ui barrel file today — every
// component is already imported directly by filename. This rule keeps
// it that way by rejecting any future `@/components/ui` (or a nested
// barrel under it) import before it can reintroduce the tree-shaking
// problem #495 was filed against.
"no-restricted-imports": [
"error",
{
patterns: [
{
group: ["@/components/ui", "@/components/ui/index"],
message:
"Import directly from the component's own file (e.g. '@/components/ui/Button'), not a barrel — barrel imports defeat tree-shaking (#495).",
},
],
},
],
},
},
];

export default eslintConfig;
Loading