@cajuinasi/eslint-config
v2.1.7
Published
Eslint config oficial da CajuinaSI
Readme
🧹 @cajuinasi/eslint-config
Configuração oficial do ESLint usada nos projetos da CajuinaSI.
✨ O que inclui
- ⚙️ Padrões de código da CajuinaSI
- 🎯 Suporte para TypeScript, JavaScript e Astro
- 🔄 Configuração flat config moderna do ESLint 9
- ✅ Regras otimizadas para desenvolvimento web
- 🎨 Três configurações: Default (Full Stack), Frontend e Backend
🚀 Instalação
Em qualquer projeto, rode:
pnpm add -D @cajuinasi/eslint-config eslint📖 Uso
Escolhendo a configuração certa
@cajuinasi/eslint-config(Default): Para monorepos ou projetos full-stack que combinam frontend e backend@cajuinasi/eslint-config/frontend: Para projetos Astro ou Next.js@cajuinasi/eslint-config/backend: Para projetos NestJS ou Node.js
🎯 Configuração Default (Monorepo/Full Stack)
JavaScript (ESM) - eslint.config.js ou eslint.config.mjs
import eslintConfig from "@cajuinasi/eslint-config";
export default eslintConfig;CommonJS - eslint.config.cjs
const eslintConfig = require("@cajuinasi/eslint-config");
module.exports = eslintConfig;TypeScript - eslint.config.ts
import eslintConfig from "@cajuinasi/eslint-config";
import type { Linter } from "eslint";
export default eslintConfig satisfies Linter.Config[];🌐 Configuração Frontend (Astro/Next.js)
JavaScript (ESM)
import frontendConfig from "@cajuinasi/eslint-config/frontend";
export default frontendConfig;CommonJS
const frontendConfig = require("@cajuinasi/eslint-config/frontend");
module.exports = frontendConfig;TypeScript
import frontendConfig from "@cajuinasi/eslint-config/frontend";
import type { Linter } from "eslint";
export default frontendConfig satisfies Linter.Config[];Com configurações adicionais
import frontendConfig from "@cajuinasi/eslint-config/frontend";
export default [
...frontendConfig,
{
files: ["**/*.{js,ts,jsx,tsx}"],
rules: {
// suas regras customizadas aqui
"no-console": "warn",
},
},
];🖥️ Configuração Backend (NestJS/Node.js)
JavaScript (ESM)
import backendConfig from "@cajuinasi/eslint-config/backend";
export default backendConfig;CommonJS
const backendConfig = require("@cajuinasi/eslint-config/backend");
module.exports = backendConfig;TypeScript
import backendConfig from "@cajuinasi/eslint-config/backend";
import type { Linter } from "eslint";
export default backendConfig satisfies Linter.Config[];🔄 Migração da v1 para v2
[!WARNING] > Breaking Change: A v2 reorganiza completamente a estrutura do pacote.
Se você usava a v1:
// v1.x
import eslintConfig from "@cajuinasi/eslint-config";
export default eslintConfig;Para v2, escolha a configuração apropriada:
// v2.x - Frontend (se seu projeto é Astro/Next)
import frontendConfig from "@cajuinasi/eslint-config/frontend";
export default frontendConfig;
// v2.x - Backend (se seu projeto é NestJS/Node)
import backendConfig from "@cajuinasi/eslint-config/backend";
export default backendConfig;
// v2.x - Default (se seu projeto é monorepo/full-stack)
import eslintConfig from "@cajuinasi/eslint-config";
export default eslintConfig;🎯 Recursos incluídos
Frontend Config
- Astro: Parser e regras específicas para arquivos
.astro - Next.js/React: Suporte para JSX/TSX
- Browser globals: Variáveis globais do navegador
Backend Config
- NestJS: Regras otimizadas para o framework
- Node.js globals: Variáveis globais do Node.js
- TypeScript: Configuração específica para backend
Default Config
- Combina todas as regras de Frontend e Backend
- Ideal para monorepos
🔧 Configurações personalizadas
Você pode sobrescrever ou adicionar regras específicas para seu projeto:
import frontendConfig from "@cajuinasi/eslint-config/frontend";
export default [
...frontendConfig,
{
// Ignorar arquivos adicionais
ignores: ["**/build/**", "**/coverage/**"],
},
{
// Regras customizadas
files: ["**/*.{js,ts}"],
rules: {
"no-console": "off",
},
},
];📦 Dependências incluídas
Esta configuração já inclui:
@eslint/jstypescript-eslinteslint-plugin-astro(na config frontend e default)astro-eslint-parser(na config frontend e default)globals
Você não precisa instalar essas dependências separadamente.
🤝 Contribuindo
Sugestões e melhorias são bem-vindas! Abra uma issue ou PR no repositório.
📄 Licença
MIT © CajuinaSI
