75 lines
1.8 KiB
JavaScript
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',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
};
|