1.0.0 • Published 11 months ago

@7nohe/adonis-bullet v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
11 months ago

AdonisJS Bullet

AdonisJS Bullet is a package that helps to kill N+1 queries in your AdonisJS application.

Installation

node ace add @7nohe/adonis-bullet

Usually, the config/database.ts file is updated when this command is executed. If it is not updated, please enable debug mode manually.

You can also manually modify config/database.ts to enable debug mode in non-production environments.

import env from '#start/env'
import { defineConfig } from '@adonisjs/lucid'
import app from '@adonisjs/core/services/app'

const dbConfig = defineConfig({
  connection: 'postgres',
  connections: {
    postgres: {
      client: 'pg',
      connection: {
        host: env.get('DB_HOST'),
        port: env.get('DB_PORT'),
        user: env.get('DB_USER'),
        password: env.get('DB_PASSWORD'),
        database: env.get('DB_DATABASE'),
      },
      debug: !app.inProduction,
    },
  },
})

Configuration

You can modify config/bullet.ts to enable/disable N+1 query detection or set the threshold for detecting queries. By setting the BULLET_THRESHOLD environment variable, you can change the threshold.

export default defineConfig({
  /**
   * Enable or disable Bullet
   */
  enabled: !app.inProduction,

  /**
   * The threshold level for detecting N+1 queries.
   * If a relation query is executed more than this number of times, the detector will notify you.
   **/
  threshold: env.get('BULLET_THRESHOLD', 1),
})

Customize N+1 query detection event

Optionally, you can modify start/bullet.ts to customize the N+1 query detection event. The @7nohe/adonis-bullet package emits the bullet:detected event when an N+1 query is detected.

emitter.on('bullet:detected', function (query) {
  logger.warn('N + 1 query detected: %j', query)
})
1.0.0

11 months ago

0.0.1-7

11 months ago

0.0.1-6

11 months ago

0.0.1-5

11 months ago

0.0.1-4

11 months ago

0.0.1-3

11 months ago

0.0.1-2

11 months ago

0.0.1-1

11 months ago

0.0.1-0

11 months ago