Skip to content

Commit 97c1399

Browse files
authored
feat: use compression in express server (#2680)
1 parent 1272bf9 commit 97c1399

File tree

3 files changed

+48
-1
lines changed

3 files changed

+48
-1
lines changed

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
"devDependencies": {
3434
"@schemastore/package": "^0.0.6",
3535
"@types/body-parser": "^1.19.0",
36+
"@types/compression": "^1.7.0",
3637
"@types/cookie-parser": "^1.4.2",
3738
"@types/express": "^4.17.8",
3839
"@types/fs-extra": "^8.0.1",
@@ -51,6 +52,7 @@
5152
"@types/wtfnode": "^0.7.0",
5253
"@typescript-eslint/eslint-plugin": "^4.7.0",
5354
"@typescript-eslint/parser": "^4.7.0",
55+
"compression": "^1.7.4",
5456
"doctoc": "^1.4.0",
5557
"eslint": "^7.7.0",
5658
"eslint-config-prettier": "^6.0.0",

src/node/app.ts

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { logger } from "@coder/logger"
2+
import compression from "compression"
23
import express, { Express } from "express"
34
import { promises as fs } from "fs"
45
import http from "http"
@@ -13,6 +14,8 @@ import { handleUpgrade } from "./wsRouter"
1314
export const createApp = async (args: DefaultedArgs): Promise<[Express, Express, http.Server]> => {
1415
const app = express()
1516

17+
app.use(compression())
18+
1619
const server = args.cert
1720
? httpolyglot.createServer(
1821
{

yarn.lock

+43-1
Original file line numberDiff line numberDiff line change
@@ -1031,6 +1031,13 @@
10311031
"@types/connect" "*"
10321032
"@types/node" "*"
10331033

1034+
"@types/compression@^1.7.0":
1035+
version "1.7.0"
1036+
resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.0.tgz#8dc2a56604873cf0dd4e746d9ae4d31ae77b2390"
1037+
integrity sha512-3LzWUM+3k3XdWOUk/RO+uSjv7YWOatYq2QADJntK1pjkk4DfVP0KrIEPDnXRJxAAGKe0VpIPRmlINLDuCedZWw==
1038+
dependencies:
1039+
"@types/express" "*"
1040+
10341041
"@types/connect@*":
10351042
version "3.4.33"
10361043
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546"
@@ -1286,7 +1293,7 @@ abab@^2.0.0:
12861293
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a"
12871294
integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==
12881295

1289-
accepts@~1.3.7:
1296+
accepts@~1.3.5, accepts@~1.3.7:
12901297
version "1.3.7"
12911298
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
12921299
integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
@@ -1882,6 +1889,11 @@ builtin-status-codes@^3.0.0:
18821889
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
18831890
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
18841891

1892+
1893+
version "3.0.0"
1894+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
1895+
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
1896+
18851897
18861898
version "3.1.0"
18871899
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
@@ -2193,6 +2205,26 @@ component-emitter@^1.2.1:
21932205
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
21942206
integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
21952207

2208+
compressible@~2.0.16:
2209+
version "2.0.18"
2210+
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
2211+
integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
2212+
dependencies:
2213+
mime-db ">= 1.43.0 < 2"
2214+
2215+
compression@^1.7.4:
2216+
version "1.7.4"
2217+
resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
2218+
integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
2219+
dependencies:
2220+
accepts "~1.3.5"
2221+
bytes "3.0.0"
2222+
compressible "~2.0.16"
2223+
debug "2.6.9"
2224+
on-headers "~1.0.2"
2225+
safe-buffer "5.1.2"
2226+
vary "~1.1.2"
2227+
21962228
21972229
version "0.0.1"
21982230
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -4820,6 +4852,11 @@ [email protected]:
48204852
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
48214853
integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
48224854

4855+
"mime-db@>= 1.43.0 < 2":
4856+
version "1.45.0"
4857+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea"
4858+
integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==
4859+
48234860
mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
48244861
version "2.1.27"
48254862
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
@@ -5161,6 +5198,11 @@ on-finished@~2.3.0:
51615198
dependencies:
51625199
ee-first "1.1.1"
51635200

5201+
on-headers@~1.0.2:
5202+
version "1.0.2"
5203+
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
5204+
integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
5205+
51645206
once@^1.3.0, once@^1.3.1, once@^1.4.0:
51655207
version "1.4.0"
51665208
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"

0 commit comments

Comments
 (0)