You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@adonisjs/eslint-plugin

Package Overview
Dependencies
Maintainers
3
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adonisjs/eslint-plugin

ESLint plugin to enforce AdonisJS app specific linting rules

2.0.0
latest
Source
npmnpm
Version published
Weekly downloads
22K
3.61%
Maintainers
3
Weekly downloads
 
Created
Source

@adonisjs/eslint-plugin

Compatible with ESLint>=9.0 and TypeScript >=5.4


ESLint plugin for AdonisJS applications

The plugin forces your application to use lazy imports for controllers and event listeners. Lazy imports are a must when you are using HMR mode in AdonisJS.


gh-workflow-image typescript-image npm-image license-image

Installation

The package comes pre-configured with the @adonisjs/eslint-config preset and hence manual installation is not required.

However, you can install and configure it as follows.

npm i -D @adonisjs/eslint-plugin@beta

# Install peer dependencies
npm i -D eslint@9 typescript typescript-eslint

Usage

After installation, you can register the following as follows. Make sure to also setup the typescript-eslint parser in order for the rules to work.

// eslint.config.js
import adonisJSPlugin from '@adonisjs/eslint-plugin'

export default [
  {
    plugins: {
      '@adonisjs': adonisJSPlugin,
    },
    rules: {
      '@adonisjs/prefer-lazy-controller-import': 'error',
      '@adonisjs/prefer-lazy-listener-import': 'error',
    },
  },
]

prefer-lazy-controller-import

[!IMPORTANT] The HMR mode of AdonisJS only works with Lazy loaded controllers

The @adonisjs/prefer-lazy-controller-import rule complains when you import a controller using the import expression and assign it to a route. For example:

import router from '@adonisjs/core/services/router'
// ❌ Error: Replace standard import with lazy controller import
import UsersController from '#controllers/user_controller'

router.get('users', [UsersController, 'index'])

The rule is auto fixable, therefore you can apply the fix depending upon the shortcuts provided by your code editor.

import router from '@adonisjs/core/services/router'
// ✅ Fixed
const UsersController = () => import('#controllers/user_controller')

router.get('users', [UsersController, 'index'])

prefer-lazy-listener-import

[!IMPORTANT] The HMR mode of AdonisJS only works with Lazy loaded event listeners

The @adonisjs/prefer-lazy-listener-import rule complains when you import an event listener using the import expression and assign it to an event. For example:

import emitter from '@adonisjs/core/services/emitter'
// ❌ Error: Replace standard import with lazy controller import
import SendVerificationEmail from '#listeners/send_verification_email'

emitter.on('user:created', [SendVerificationEmail, 'handle'])

The rule is auto fixable, therefore you can apply the fix depending upon the shortcuts provided by your code editor.

import emitter from '@adonisjs/core/services/emitter'
// ✅ Fixed
const SendVerificationEmail = () => import('#listeners/send_verification_email')

emitter.on('user:created', [SendVerificationEmail, 'handle'])
Built with ❤︎ by Julien Ripouteau and Harminder Virk

Keywords

eslint

FAQs

Package last updated on 25 May 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts