@prover-coder-ai/eslint-plugin-suggest-members
v0.0.16
Published
Production‑ready ESLint plugin that suggests corrections for typos in TypeScript/JavaScript code. Built with Functional Core / Imperative Shell and Effect‑TS.
Downloads
1,971
Readme
@prover-coder-ai/eslint-plugin-suggest-members
Production‑ready ESLint plugin that suggests corrections for typos in TypeScript/JavaScript code. Built with Functional Core / Imperative Shell and Effect‑TS.
✨ Key Features
- Smart suggestions for typos (similarity scoring)
- TypeScript‑aware diagnostics with signatures
- Filesystem‑based module path suggestions
- Fully typed, Effect‑TS based architecture
⚙️ Configuration (ESLint v9+ Flat Config)
// eslint.config.js
import suggestMembers from "@prover-coder-ai/eslint-plugin-suggest-members"
export default [
{
...suggestMembers.configs.recommended,
files: ["**/*.{ts,tsx,js,jsx}"]
}
]✅ Example Diagnostics
Export Suggestions (suggest-exports)
// ❌ Typo in React hook import
export { useStae, useEffect } from "react"
// ✅ ESLint Error: Export 'useStae' does not exist on type 'typeof import("react")'. Did you mean:
// - useState
// - useRef
// - useMemo
// - useCallbackMember Suggestions (suggest-members)
// ❌ Typo in localStorage method
localStorage.get1Item("token")
// ✅ ESLint Error: Property 'get1Item' does not exist on type 'Storage'. Did you mean:
// - getItem(key: string): string | null
// - setItem(key: string, value: string)
// - removeItem(key: string)
// - clear(): voidModule Path Suggestions (suggest-module-paths)
// ❌ Typo in file path
import styles from "./HamsterKo1mbatPage.css"
// ✅ ESLint Error: Cannot find module "./HamsterKo1mbatPage.css". Did you mean:
// - ./HamsterKombatPage.css
// - ./HamsterKombatPage.tsx
// - ./HamsterKombatPage
// - ../ThemeParamsPage.cssImport Suggestions (suggest-imports)
// ❌ Typo in named import
import { saveRe1f } from "./hooks"
// ✅ ESLint Error: Export 'saveRe1f' does not exist on type 'typeof import("./hooks")'. Did you mean:
// - saveRef
// - saveState
// - useRef
// - useStateMissing Name Suggestions (suggest-missing-names)
// ❌ Typo in local identifier
const formatGree1ting = () => "ok"
formatGreeting()
// ✅ ESLint Error: Cannot find name 'formatGreeting'. Did you mean:
// - formatGree1ting(): string📚 Rules
| Name | Description | TS Required | | --- | --- | --- | | suggest-exports | Suggests corrections for missing exports | ✅ | | suggest-imports | Suggests corrections for missing imports | ✅ | | suggest-members | Suggests corrections for missing members | ✅ | | suggest-missing-names | Suggests corrections for unresolved identifiers | ✅ | | suggest-module-paths | Suggests corrections for missing module paths | ❌ |
Development
pnpm --filter @prover-coder-ai/eslint-plugin-suggest-members test