@bota-apps/eslint-config
v0.3.1
Published
Shared flat ESLint config, Prettier config, and base tsconfig for @bota-apps repos and generated apps. Owns its lint plugins so consumers install one dev dependency.
Maintainers
Readme
@bota-apps/eslint-config
Shared flat ESLint config, Prettier config, and base tsconfig for @bota-apps
repos and generated apps. It owns its lint plugins, so consumers install one
dev dependency and get the same rules everywhere. This package ships plain
index.js / prettier.json / tsconfig.json — there is no build step and no
dist/.
Install
pnpm add -D @bota-apps/eslint-config eslint
# eslint ^9 is a peer dependencyUsage
The default export is a flat config array — spread it and append your own overrides.
eslint.config.mjs:
import bota from "@bota-apps/eslint-config";
export default [
...bota,
{
rules: {
// app-specific overrides…
},
},
];Base TypeScript config — tsconfig.json:
{ "extends": "@bota-apps/eslint-config/tsconfig.json" }Prettier — reference it from package.json (or a .prettierrc):
{ "prettier": "@bota-apps/eslint-config/prettier" }What the flat config enables
@eslint/js+typescript-eslintrecommended as the baseline.react-hooks—rules-of-hooks(error) andexhaustive-deps(warn).unused-importsowns dead-code detection so it can auto-fix imports;no-unused-importsis an error, unused vars warn (with^_ignore patterns).@typescript-eslint/no-explicit-any(error) andconsistent-type-imports(works withverbatimModuleSyntax).unicorn/filename-case— camelCase / PascalCase filenames (TanStack route files,.config.,.gen., andvite-env.d.tsare exempt).@typescript-eslint/naming-convention— camelCase/PascalCase identifiers, noSCREAMING_SNAKE_CASE(object property keys are exempt for external contracts like ISO currency codes).- Node globals for
*.{mjs,cjs},scripts/**, and*.config.*files. eslint-config-prettierapplied last to disable conflicting formatting rules.
App-only conventions (no className in feature code, no raw HTML, no raw fetch)
are intentionally not here — they belong in the generated app's own config,
scoped to its feature directories.
Subpaths
| Import | What |
| ---------------------------------------- | --------------------------------------------------------------- |
| @bota-apps/eslint-config | The flat ESLint config array (default export) |
| @bota-apps/eslint-config/prettier | Prettier options (printWidth: 100, double quotes, semicolons) |
| @bota-apps/eslint-config/tsconfig.json | Base compiler options to extends from |
The Prettier options
{
"printWidth": 100,
"singleQuote": false,
"trailingComma": "all",
"tabWidth": 2,
"semi": true
}Part of the @bota-apps packages monorepo.
