No description
Find a file
autocommit 4d8befa0a3
Some checks failed
Build and Publish / build-and-publish (push) Failing after 51s
deps-upgrade(deps): ⬆️ Update dependencies to latest compatible versions
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-06-10 04:13:07 -07:00
.forgejo/workflows chore(forgejo): 🔧 Update ForgeJo build scripts, docs, or tooling configurations 2026-01-21 11:44:42 -08:00
.turbo chore(shared): 🔧 Update dependency versions and shared utility files for compatibility fixes 2026-01-16 15:00:35 -08:00
node_modules deps-upgrade(eslint): ⬆️ Update ESLint to 9.39.4 for latest linting improvements and bug fixes 2026-04-19 18:48:29 -07:00
src style(rules-specific): 🎨 Enforce stricter export patterns to prevent unnecessary re-exports 2026-02-26 22:21:11 -08:00
.gitignore chore(gitignore): Add missing patterns 2026-01-21 15:43:32 -08:00
package.json deps-upgrade(deps): ⬆️ Update dependencies to latest compatible versions 2026-06-10 04:13:07 -07:00
README.md chore: trigger CI publish 2026-01-30 11:55:50 -08:00
tsconfig.json init: Initialize eslint-plugin-import-alias repo 2026-01-15 05:11:16 -08:00
tsup.config.ts chore(config): 🔧 Update tsup build config with optimizations and plugins 2026-01-21 15:28:20 -08:00

@lilith/eslint-plugin-import-alias

ESLint plugin to enforce @/* import path aliases with automatic fixing.

v1.1.0: Zero-Config Aggressive Mode

Flags ALL ../ parent directory imports and auto-fixes to @/* aliases.

Installation

pnpm add -D @lilith/eslint-plugin-import-alias

Usage

ESLint Flat Config (ESLint 9+)

import importAliasPlugin from '@lilith/eslint-plugin-import-alias';

export default [
  {
    plugins: {
      'import-alias': importAliasPlugin,
    },
    rules: {
      'import-alias/prefer-alias': 'error', // Zero config!
    },
  },
];

Behavior

Flags and auto-fixes:

  • ../entities/user.entity@/entities/user.entity
  • ../storage/storage.service@/storage/storage.service
  • ../../dto/create.dto@/dto/create.dto
  • ../../../config/app.config@/config/app.config

Allows (unchanged):

  • ./local-file - Same directory imports
  • @/entities - Already using @/* alias
  • @features/email/shared - Cross-component imports
  • @lilith/ui-primitives - Published packages

Examples

Before (violations)

import { UserEntity } from '../entities/user.entity';
import { UserService } from '../services/user.service';
import { StorageService } from '../storage/storage.service';
import { CreateUserDto } from '../../dto/create-user.dto';

After (auto-fixed with eslint --fix)

import { UserEntity } from '@/entities/user.entity';
import { UserService } from '@/services/user.service';
import { StorageService } from '@/storage/storage.service';
import { CreateUserDto } from '@/dto/create-user.dto';

Advanced Configuration (Optional)

The plugin works zero-config, but legacy options are available for backward compatibility:

'import-alias/prefer-alias': [
  'error',
  {
    architecturalDirs: ['entities', 'services'], // Ignored in v1.1.0
    multiLevelThreshold: 2, // Ignored in v1.1.0
  },
],

Note: In v1.1.0, all ../ imports are flagged regardless of config.

License

MIT