mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-04-04 07:46:16 +02:00
22 lines
628 B
TypeScript
22 lines
628 B
TypeScript
import env from '#start/env'
|
|
import type { HttpContext } from '@adonisjs/core/http'
|
|
import type { NextFn } from '@adonisjs/core/types/http'
|
|
import compression from 'compression'
|
|
|
|
const compress = env.get('DISABLE_COMPRESSION') ? null : compression()
|
|
|
|
export default class CompressionMiddleware {
|
|
async handle({ request, response }: HttpContext, next: NextFn) {
|
|
if (!compress) return await next()
|
|
|
|
await new Promise<void>((resolve, reject) => {
|
|
compress(request.request as any, response.response as any, (err?: any) => {
|
|
if (err) reject(err)
|
|
else resolve()
|
|
})
|
|
})
|
|
|
|
await next()
|
|
}
|
|
}
|