@@ -2,16 +2,18 @@ const process = require('node:process');
22const http = require ( 'node:http' ) ;
33const https = require ( 'node:https' ) ;
44const util = require ( 'node:util' ) ;
5+ const zlib = require ( 'node:zlib' ) ;
56const Cabin = require ( 'cabin' ) ;
67const I18N = require ( '@ladjs/i18n' ) ;
7- const Passport = require ( '@ladjs/passport' ) ;
88const Koa = require ( 'koa' ) ;
9+ const Passport = require ( '@ladjs/passport' ) ;
910const Redis = require ( '@ladjs/redis' ) ;
1011const StoreIPAddress = require ( '@ladjs/store-ip-address' ) ;
1112const Timeout = require ( 'koa-better-timeout' ) ;
1213const _ = require ( 'lodash' ) ;
1314const auth = require ( 'koa-basic-auth' ) ;
1415const bodyParser = require ( 'koa-bodyparser' ) ;
16+ const compress = require ( 'koa-compress' ) ;
1517const conditional = require ( 'koa-conditional-get' ) ;
1618const cors = require ( 'kcors' ) ;
1719const errorHandler = require ( 'koa-better-error-handler' ) ;
@@ -49,6 +51,17 @@ class API {
4951 prettyPrintedJSON : process . env . PRETTY_PRINTED_JSON
5052 ? Boolean ( process . env . PRETTY_PRINTED_JSON )
5153 : false ,
54+
55+ // https://github.com/koajs/compress
56+ compress : {
57+ br : {
58+ params : {
59+ [ zlib . constants . BROTLI_PARAM_MODE ] : zlib . constants . BROTLI_MODE_TEXT ,
60+ [ zlib . constants . BROTLI_PARAM_QUALITY ] : 4
61+ }
62+ }
63+ } ,
64+
5265 ...config
5366 } ;
5467
@@ -135,6 +148,9 @@ class API {
135148 app . use ( i18n . middleware ) ;
136149 }
137150
151+ // compress/gzip
152+ if ( this . config . compress ) app . use ( compress ( this . config . compress ) ) ;
153+
138154 // Conditional-get
139155 app . use ( conditional ( ) ) ;
140156
0 commit comments