removed koa-bodyparser
Massimo Melina committed
Jan 24, 2022 at 10:38 UTC
7c9bab5412c1540ac563eff635035006dcd8792d
4 files changed
+39
-204
package-lock.json
+17
-193
@@ -14,7 +14,6 @@
14
"buffer-crc32": "https://github.com/rejetto/buffer-crc32.git",
15
"fast-glob": "^3.2.7",
16
"koa": "^2.13.4",
17
- "koa-bodyparser": "^4.3.0",
17
"koa-compress": "^5.1.0",
18
"koa-mount": "^4.0.0",
19
"koa-session": "^6.2.0",
@@ -33,7 +32,6 @@
32
"@types/axios": "^0.14.0",
33
"@types/koa": "^2.13.4",
34
"@types/koa__router": "^8.0.11",
36
- "@types/koa-bodyparser": "^4.3.4",
35
"@types/koa-compress": "^4.0.3",
36
"@types/koa-mount": "^4.0.1",
37
"@types/koa-session": "^5.10.4",
@@ -609,15 +607,6 @@
607
"@types/koa": "*"
608
}
609
},
612
- "node_modules/@types/koa-bodyparser": {
613
- "version": "4.3.5",
614
- "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz",
615
- "integrity": "sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ==",
616
- "dev": true,
617
- "dependencies": {
618
- "@types/koa": "*"
619
- }
620
- },
610
"node_modules/@types/koa-compose": {
611
"version": "3.2.5",
612
"resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
@@ -1041,18 +1030,6 @@
1030
"node": ">=8"
1031
}
1032
},
1044
- "node_modules/call-bind": {
1045
- "version": "1.0.2",
1046
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
1047
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
1048
- "dependencies": {
1049
- "function-bind": "^1.1.1",
1050
- "get-intrinsic": "^1.0.2"
1051
- },
1052
- "funding": {
1053
- "url": "https://github.com/sponsors/ljharb"
1054
- }
1055
- },
1033
"node_modules/camelcase": {
1034
"version": "6.2.1",
1035
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz",
@@ -1196,17 +1173,6 @@
1173
"node": ">= 0.12.0"
1174
}
1175
},
1199
- "node_modules/co-body": {
1200
- "version": "6.1.0",
1201
- "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
1202
- "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
1203
- "dependencies": {
1204
- "inflation": "^2.0.0",
1205
- "qs": "^6.5.2",
1206
- "raw-body": "^2.3.3",
1207
- "type-is": "^1.6.16"
1208
- }
1209
- },
1176
"node_modules/color-convert": {
1177
"version": "2.0.1",
1178
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -1299,11 +1265,6 @@
1265
"node": ">= 0.8"
1266
}
1267
},
1302
- "node_modules/copy-to": {
1303
- "version": "2.0.1",
1304
- "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
1305
- "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
1306
- },
1268
"node_modules/core-util-is": {
1269
"version": "1.0.3",
1270
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -1711,7 +1672,8 @@
1672
"node_modules/function-bind": {
1673
"version": "1.1.1",
1674
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1714
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
1675
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1676
+ "dev": true
1677
},
1678
"node_modules/get-caller-file": {
1679
"version": "2.0.5",
@@ -1722,19 +1684,6 @@
1684
"node": "6.* || 8.* || >= 10.*"
1685
}
1686
},
1725
- "node_modules/get-intrinsic": {
1726
- "version": "1.1.1",
1727
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1728
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1729
- "dependencies": {
1730
- "function-bind": "^1.1.1",
1731
- "has": "^1.0.3",
1732
- "has-symbols": "^1.0.1"
1733
- },
1734
- "funding": {
1735
- "url": "https://github.com/sponsors/ljharb"
1736
- }
1737
- },
1687
"node_modules/get-stream": {
1688
"version": "4.1.0",
1689
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -1823,6 +1772,7 @@
1772
"version": "1.0.3",
1773
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1774
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1775
+ "dev": true,
1776
"dependencies": {
1777
"function-bind": "^1.1.1"
1778
},
@@ -1939,6 +1889,7 @@
1889
"version": "0.4.24",
1890
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
1891
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
1892
+ "dev": true,
1893
"dependencies": {
1894
"safer-buffer": ">= 2.1.2 < 3"
1895
},
@@ -1998,14 +1949,6 @@
1949
"node": ">=8"
1950
}
1951
},
2001
- "node_modules/inflation": {
2002
- "version": "2.0.0",
2003
- "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
2004
- "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8=",
2005
- "engines": {
2006
- "node": ">= 0.8.0"
2007
- }
2008
- },
1952
"node_modules/inflight": {
1953
"version": "1.0.6",
1954
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -2360,18 +2303,6 @@
2303
"node": ">=10.0.0"
2304
}
2305
},
2363
- "node_modules/koa-bodyparser": {
2364
- "version": "4.3.0",
2365
- "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
2366
- "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==",
2367
- "dependencies": {
2368
- "co-body": "^6.0.0",
2369
- "copy-to": "^2.0.1"
2370
- },
2371
- "engines": {
2372
- "node": ">=8.0.0"
2373
- }
2374
- },
2306
"node_modules/koa-compose": {
2307
"version": "4.1.0",
2308
"resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
@@ -3134,14 +3065,6 @@
3065
"node": ">=8"
3066
}
3067
},
3137
- "node_modules/object-inspect": {
3138
- "version": "1.12.0",
3139
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
3140
- "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
3141
- "funding": {
3142
- "url": "https://github.com/sponsors/ljharb"
3143
- }
3144
- },
3068
"node_modules/on-finished": {
3069
"version": "2.3.0",
3070
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -3364,20 +3287,6 @@
3287
"node": ">=8"
3288
}
3289
},
3367
- "node_modules/qs": {
3368
- "version": "6.10.2",
3369
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz",
3370
- "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==",
3371
- "dependencies": {
3372
- "side-channel": "^1.0.4"
3373
- },
3374
- "engines": {
3375
- "node": ">=0.6"
3376
- },
3377
- "funding": {
3378
- "url": "https://github.com/sponsors/ljharb"
3379
- }
3380
- },
3290
"node_modules/queue-microtask": {
3291
"version": "1.2.3",
3292
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -3419,6 +3328,7 @@
3328
"version": "2.4.2",
3329
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
3330
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
3331
+ "dev": true,
3332
"dependencies": {
3333
"bytes": "3.1.1",
3334
"http-errors": "1.8.1",
@@ -3641,7 +3551,8 @@
3551
"node_modules/safer-buffer": {
3552
"version": "2.1.2",
3553
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
3644
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
3554
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
3555
+ "dev": true
3556
},
3557
"node_modules/semver": {
3558
"version": "5.7.1",
@@ -3687,19 +3598,6 @@
3598
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
3599
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
3600
},
3690
- "node_modules/side-channel": {
3691
- "version": "1.0.4",
3692
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
3693
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
3694
- "dependencies": {
3695
- "call-bind": "^1.0.0",
3696
- "get-intrinsic": "^1.0.2",
3697
- "object-inspect": "^1.9.0"
3698
- },
3699
- "funding": {
3700
- "url": "https://github.com/sponsors/ljharb"
3701
- }
3702
- },
3601
"node_modules/signal-exit": {
3602
"version": "3.0.6",
3603
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
@@ -4007,6 +3905,7 @@
3905
"version": "1.0.0",
3906
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
3907
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
3908
+ "dev": true,
3909
"engines": {
3910
"node": ">= 0.8"
3911
}
@@ -4692,15 +4591,6 @@
4591
"@types/koa": "*"
4592
}
4593
},
4695
- "@types/koa-bodyparser": {
4696
- "version": "4.3.5",
4697
- "resolved": "https://registry.npmjs.org/@types/koa-bodyparser/-/koa-bodyparser-4.3.5.tgz",
4698
- "integrity": "sha512-NRqqoTtt7cfdDk/KNo+EwCIKRuzPAu/wsaZ7tgIvSIBtNfxuZHYueaLoWdxX3ZftWavQv07NE46TcpyoZGqpgQ==",
4699
- "dev": true,
4700
- "requires": {
4701
- "@types/koa": "*"
4702
- }
4703
- },
4594
"@types/koa-compose": {
4595
"version": "3.2.5",
4596
"resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz",
@@ -5034,15 +4924,6 @@
4924
}
4925
}
4926
},
5037
- "call-bind": {
5038
- "version": "1.0.2",
5039
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
5040
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
5041
- "requires": {
5042
- "function-bind": "^1.1.1",
5043
- "get-intrinsic": "^1.0.2"
5044
- }
5045
- },
4927
"camelcase": {
4928
"version": "6.2.1",
4929
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz",
@@ -5148,17 +5029,6 @@
5029
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
5030
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
5031
},
5151
- "co-body": {
5152
- "version": "6.1.0",
5153
- "resolved": "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz",
5154
- "integrity": "sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==",
5155
- "requires": {
5156
- "inflation": "^2.0.0",
5157
- "qs": "^6.5.2",
5158
- "raw-body": "^2.3.3",
5159
- "type-is": "^1.6.16"
5160
- }
5161
- },
5032
"color-convert": {
5033
"version": "2.0.1",
5034
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -5230,11 +5100,6 @@
5100
"keygrip": "~1.1.0"
5101
}
5102
},
5233
- "copy-to": {
5234
- "version": "2.0.1",
5235
- "resolved": "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz",
5236
- "integrity": "sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU="
5237
- },
5103
"core-util-is": {
5104
"version": "1.0.3",
5105
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
@@ -5543,7 +5408,8 @@
5408
"function-bind": {
5409
"version": "1.1.1",
5410
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
5546
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
5411
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
5412
+ "dev": true
5413
},
5414
"get-caller-file": {
5415
"version": "2.0.5",
@@ -5551,16 +5417,6 @@
5417
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
5418
"dev": true
5419
},
5554
- "get-intrinsic": {
5555
- "version": "1.1.1",
5556
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
5557
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
5558
- "requires": {
5559
- "function-bind": "^1.1.1",
5560
- "has": "^1.0.3",
5561
- "has-symbols": "^1.0.1"
5562
- }
5563
- },
5420
"get-stream": {
5421
"version": "4.1.0",
5422
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -5628,6 +5484,7 @@
5484
"version": "1.0.3",
5485
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
5486
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
5487
+ "dev": true,
5488
"requires": {
5489
"function-bind": "^1.1.1"
5490
}
@@ -5710,6 +5567,7 @@
5567
"version": "0.4.24",
5568
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
5569
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
5570
+ "dev": true,
5571
"requires": {
5572
"safer-buffer": ">= 2.1.2 < 3"
5573
}
@@ -5743,11 +5601,6 @@
5601
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
5602
"dev": true
5603
},
5746
- "inflation": {
5747
- "version": "2.0.0",
5748
- "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz",
5749
- "integrity": "sha1-i0F+R8KPklpFEz2RTKH9OJEH8w8="
5750
- },
5604
"inflight": {
5605
"version": "1.0.6",
5606
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -6021,15 +5874,6 @@
5874
"winston": "^2.3.1"
5875
}
5876
},
6024
- "koa-bodyparser": {
6025
- "version": "4.3.0",
6026
- "resolved": "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz",
6027
- "integrity": "sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==",
6028
- "requires": {
6029
- "co-body": "^6.0.0",
6030
- "copy-to": "^2.0.1"
6031
- }
6032
- },
5877
"koa-compose": {
5878
"version": "4.1.0",
5879
"resolved": "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz",
@@ -6588,11 +6432,6 @@
6432
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
6433
"dev": true
6434
},
6591
- "object-inspect": {
6592
- "version": "1.12.0",
6593
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
6594
- "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g=="
6595
- },
6435
"on-finished": {
6436
"version": "2.3.0",
6437
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
@@ -6757,14 +6596,6 @@
6596
"escape-goat": "^2.0.0"
6597
}
6598
},
6760
- "qs": {
6761
- "version": "6.10.2",
6762
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz",
6763
- "integrity": "sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==",
6764
- "requires": {
6765
- "side-channel": "^1.0.4"
6766
- }
6767
- },
6599
"queue-microtask": {
6600
"version": "1.2.3",
6601
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
@@ -6789,6 +6620,7 @@
6620
"version": "2.4.2",
6621
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
6622
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
6623
+ "dev": true,
6624
"requires": {
6625
"bytes": "3.1.1",
6626
"http-errors": "1.8.1",
@@ -6957,7 +6789,8 @@
6789
"safer-buffer": {
6790
"version": "2.1.2",
6791
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
6960
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
6792
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
6793
+ "dev": true
6794
},
6795
"semver": {
6796
"version": "5.7.1",
@@ -6996,16 +6829,6 @@
6829
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
6830
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
6831
},
6999
- "side-channel": {
7000
- "version": "1.0.4",
7001
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
7002
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
7003
- "requires": {
7004
- "call-bind": "^1.0.0",
7005
- "get-intrinsic": "^1.0.2",
7006
- "object-inspect": "^1.9.0"
7007
- }
7008
- },
6832
"signal-exit": {
6833
"version": "3.0.6",
6834
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
@@ -7224,7 +7047,8 @@
7047
"unpipe": {
7048
"version": "1.0.0",
7049
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
7227
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
7050
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
7051
+ "dev": true
7052
},
7053
"update-notifier": {
7054
"version": "5.1.0",
package.json
-2
@@ -34,7 +34,6 @@
34
"buffer-crc32": "https://github.com/rejetto/buffer-crc32.git",
35
"fast-glob": "^3.2.7",
36
"koa": "^2.13.4",
37
- "koa-bodyparser": "^4.3.0",
37
"koa-compress": "^5.1.0",
38
"koa-mount": "^4.0.0",
39
"koa-session": "^6.2.0",
@@ -50,7 +49,6 @@
49
"@types/axios": "^0.14.0",
50
"@types/koa": "^2.13.4",
51
"@types/koa__router": "^8.0.11",
53
- "@types/koa-bodyparser": "^4.3.4",
52
"@types/koa-compress": "^4.0.3",
53
"@types/koa-mount": "^4.0.1",
54
"@types/koa-session": "^5.10.4",
src/apis.ts
+18
-1
@@ -1,3 +1,4 @@
1
+import { IncomingMessage } from 'http'
2
import Koa from 'koa'
3
4
export class ApiError extends Error {
@@ -11,7 +12,7 @@ export type ApiHandlers = Record<string, ApiHandler>
12
13
export function apiMiddleware(apis: ApiHandlers) : Koa.Middleware {
14
return async (ctx, next) => {
14
- const params = ctx.method === 'POST' ? ctx.request.body : ctx.request.query
15
+ const params = ctx.method === 'POST' ? await getJsonFromReq(ctx.req) : ctx.request.query
16
console.debug('API', ctx.method, ctx.path, { ...params })
17
if (!apis.hasOwnProperty(ctx.path)) {
18
ctx.body = 'invalid api'
@@ -43,3 +44,19 @@ export function apiMiddleware(apis: ApiHandlers) : Koa.Middleware {
44
}
45
}
46
47
+async function getJsonFromReq(req: IncomingMessage): Promise<any> {
48
+ return new Promise((resolve, reject) => {
49
+ let data = ''
50
+ req.on('data', chunk =>
51
+ data += chunk)
52
+ req.on('error', reject)
53
+ req.on('end', () => {
54
+ try {
55
+ resolve(JSON.parse(data))
56
+ }
57
+ catch(e) {
58
+ reject(e)
59
+ }
60
+ })
61
+ })
62
+}
src/index.ts
+4
-8
@@ -1,6 +1,5 @@
1
import Koa from 'koa'
2
import mount from 'koa-mount'
3
-import bodyParser from 'koa-bodyparser'
3
import { apiMiddleware } from './apis'
4
import { API_URI, DEV} from './const'
5
import { frontEndApis } from './frontEndApis'
@@ -31,18 +30,15 @@ app.use(throttler())
30
app.use(gzipper)
31
32
// serve apis
34
-app.use(mount(API_URI, new Koa()
35
- .use(bodyParser())
36
- .use(apiMiddleware(frontEndApis))
37
-))
38
-
33
+app.use(mount(API_URI, apiMiddleware(frontEndApis)))
34
app.use(frontendAndSharedFiles)
35
+app.on('error', errorHandler)
36
41
-app.on('error', err => {
37
+function errorHandler(err:Error & { code:string, path:string }) {
38
if (DEV && err.code === 'ENOENT' && err.path.endsWith('sockjs-node')) return // spam out
39
if (err.code === 'ECONNRESET' || err.code === 'ECONNABORTED') return // someone interrupted, don't care
40
console.error('server error', err)
45
-})
41
+}
42
43
process.on('uncaughtException', err => {
44
console.error(err)