7693b49253
- Replace @robonen/oxlint with @robonen/eslint (composable ESLint flat-config presets: base, typescript, vue, vitest, imports, node, stylistic). - Plugins bundled as deps: typescript-eslint, eslint-plugin-vue, @vitest/eslint-plugin, eslint-plugin-import-x, eslint-plugin-n, eslint-plugin-unicorn, @stylistic/eslint-plugin. - @robonen/tsconfig: add base/dom/node/vue configs for composite project refs.
28 lines
589 B
Markdown
28 lines
589 B
Markdown
# imports preset
|
|
|
|
## Purpose
|
|
|
|
Чистые границы модулей и предсказуемые импорты (через `eslint-plugin-import-x`).
|
|
|
|
## Key Rules
|
|
|
|
- `import-x/no-duplicates`.
|
|
- `import-x/no-self-import`.
|
|
- `import-x/no-cycle` (warn).
|
|
- `import-x/no-mutable-exports`.
|
|
- `import-x/consistent-type-specifier-style`: `prefer-top-level`.
|
|
|
|
## Examples
|
|
|
|
```ts
|
|
// ✅ Good
|
|
import type { User } from './types';
|
|
import { getUser } from './service';
|
|
|
|
// ❌ Bad
|
|
import { getUser } from './service';
|
|
import { getUser as getUser2 } from './service';
|
|
|
|
export let state = 0;
|
|
```
|