config-react-app/index.js

75 lines
1.8 KiB
JavaScript

/**
* @lilith/eslint-config-react-app
*
* ESLint configuration for React APPLICATIONS.
* Extends @lilith/eslint-config-react with @/ import alias enforcement.
*
* Use this for standalone React apps (landing, portal, admin dashboards).
* Do NOT use for libraries consumed by other packages - use react-lib instead.
*
* Key additions:
* - import-alias/prefer-alias: Enforces @/* aliases for architectural directories
* - import-alias/use-platform-namespace: Enforces @platform/* for cross-feature imports
*/
module.exports = {
extends: ['@lilith/eslint-config-react'],
plugins: ['@lilith/import-alias'],
rules: {
// Enforce @/* aliases for architectural directories
// Converts: ../hooks/useFoo → @/hooks/useFoo
'@lilith/import-alias/prefer-alias': [
'error',
{
architecturalDirs: [
'components',
'hooks',
'pages',
'features',
'utils',
'helpers',
'lib',
'config',
'types',
'interfaces',
'constants',
'enums',
'api',
'services',
'store',
'context',
'contexts',
'providers',
'layouts',
'assets',
'styles',
],
},
],
// Enforce @platform/* namespace for cross-feature imports
'@lilith/import-alias/use-platform-namespace': [
'error',
{
features: [
'analytics',
'attributes',
'conversation-assistant',
'dating-autopilot',
'email',
'feature-flags',
'landing',
'marketplace',
'payments',
'platform-admin',
'portal',
'profile',
'seo',
'status-dashboard',
'truth-validation',
'webmap',
],
},
],
},
};