@arapucajs/eslint-plugin
v1.2.5
Published
ESLint plugin to enforce ArapucaJS app specific linting rules
Downloads
27
Readme
@arapucajs/eslint-plugin
Compatível com ESLint>=9.0 e TypeScript >=5.4
Instalação
O pacote já vem pré-configurado com o preset @arapucajs/eslint-config, portanto a instalação manual não é necessária.
No entanto, você pode instalar e configurar da seguinte forma:
bun add -D @adonisjs/eslint-plugin
# instele as dependencias peer
bun add -d eslint typescript typescript-eslintou
npm i -D @adonisjs/eslint-plugin
# Instale as dependências peer
npm i -D eslint@9 typescript typescript-eslintUso
Após a instalação, registre o plugin conforme abaixo. Certifique-se também de configurar o parser typescript-eslint para que as regras funcionem corretamente.
// eslint.config.js
import arapucajsPlugin from '@arapucajs/eslint-plugin'
export default [
{
plugins: {
'@arapucajs': arapucajsPlugin,
},
rules: {
'@arapucajs/prefer-lazy-controller-import': 'error',
'@arapucajs/prefer-lazy-listener-import': 'error',
},
},
]prefer-lazy-controller-import
[!IMPORTANTE] O modo HMR do ArapucaJS só funciona com controllers carregados de forma dinâmica (lazy loaded)
A regra @arapucajs/prefer-lazy-controller-import acusa erro quando você importa um controller usando a expressão de importação padrão e o atribui a uma rota. Por exemplo:
import router from '@arapucajs/core/services/router'
// ❌ Erro: Substitua o import padrão por um import dinâmico do controller
import UsersController from '#controllers/user_controller'
router.get('users', [UsersController, 'index'])A regra é auto corrigível, então você pode aplicar a correção usando os atalhos do seu editor de código.
import router from '@arapucajs/core/services/router'
// ✅ Corrigido
const UsersController = () => import('#controllers/user_controller')
router.get('users', [UsersController, 'index'])prefer-lazy-listener-import
[!IMPORTANTE] O modo HMR do ArapucaJS só funciona com event listeners carregados de forma dinâmica (lazy loaded)
A regra @arapucajs/prefer-lazy-listener-import acusa erro quando você importa um event listener usando a expressão de importação padrão e o atribui a um evento. Por exemplo:
import emitter from '@arapucajs/core/services/emitter'
// ❌ Erro: Substitua o import padrão por um import dinâmico do listener
import SendVerificationEmail from '#listeners/send_verification_email'
emitter.on('user:created', [SendVerificationEmail, 'handle'])A regra é auto corrigível, então você pode aplicar a correção usando os atalhos do seu editor de código.
import emitter from '@arapucajs/core/services/emitter'
// ✅ Corrigido
const SendVerificationEmail = () => import('#listeners/send_verification_email')
emitter.on('user:created', [SendVerificationEmail, 'handle'])