Skip to content

Commit 45800ca

Browse files
committed
feat: added http2, removed old deps
1 parent ad1772a commit 45800ca

File tree

3 files changed

+34
-124
lines changed

3 files changed

+34
-124
lines changed

index.js

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const http = require('http');
2-
const http2 = require('spdy');
2+
const http2 = require('http2');
3+
const util = require('util');
34

45
const Cabin = require('cabin');
56
const I18N = require('@ladjs/i18n');
@@ -18,7 +19,6 @@ const cors = require('kcors');
1819
const errorHandler = require('koa-better-error-handler');
1920
const etag = require('koa-etag');
2021
const helmet = require('koa-helmet');
21-
const ip = require('ip');
2222
const json = require('koa-json');
2323
const koa404Handler = require('koa-404-handler');
2424
const koaConnect = require('koa-connect');
@@ -160,38 +160,25 @@ class API {
160160

161161
// start server on either http or https
162162
if (this.config.protocol === 'https')
163-
server = http2.createServer(this.config.ssl, app.callback());
163+
server = http2.createSecureServer(this.config.ssl, app.callback());
164164
else server = http.createServer(app.callback());
165165

166-
// expose app and server
166+
// expose app, server, client
167167
this.app = app;
168168
this.server = server;
169+
this.client = client;
169170

170171
autoBind(this);
171172
}
172173

173-
listen(port, fn) {
174-
if (_.isFunction(port)) {
175-
fn = port;
176-
port = null;
177-
}
178-
179-
const { logger } = this.config;
180-
if (!_.isFunction(fn))
181-
fn = function() {
182-
const { port } = this.address();
183-
logger.info(
184-
`Lad API server listening on ${port} (LAN: ${ip.address()}:${port})`
185-
);
186-
};
187-
188-
this.server = this.server.listen(port, fn);
189-
return this.server;
174+
async listen(port) {
175+
const { server } = this;
176+
this.server = await util.promisify(server.listen).bind(server)(port);
190177
}
191178

192-
close(fn) {
193-
this.server.close(fn);
194-
return this;
179+
async close() {
180+
const { server } = this;
181+
this.server = await util.promisify(server.close).bind(server);
195182
}
196183
}
197184

package.json

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,12 @@
2222
"dependencies": {
2323
"@koa/router": "^8.0.1",
2424
"@ladjs/i18n": "^1.2.1",
25-
"@ladjs/redis": "^1.0.2",
26-
"@ladjs/shared-config": "^0.0.7",
25+
"@ladjs/redis": "^1.0.3",
26+
"@ladjs/shared-config": "^0.0.8",
2727
"@ladjs/store-ip-address": "^0.0.6",
2828
"boolean": "^1.0.0",
29-
"cabin": "^5.0.1",
29+
"cabin": "^5.0.3",
3030
"express-request-id": "^1.4.1",
31-
"ip": "^1.1.5",
3231
"kcors": "^2.2.2",
3332
"koa": "^2.8.1",
3433
"koa-404-handler": "^0.0.2",
@@ -46,8 +45,7 @@
4645
"koa-simple-ratelimit": "^3.1.0",
4746
"lodash": "^4.17.15",
4847
"request-received": "^0.0.2",
49-
"response-time": "^2.3.2",
50-
"spdy": "^4.0.1"
48+
"response-time": "^2.3.2"
5149
},
5250
"devDependencies": {
5351
"@commitlint/cli": "^8.1.0",

yarn.lock

Lines changed: 19 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -453,17 +453,17 @@
453453
qs "^6.8.0"
454454
titleize "^2.1.0"
455455

456-
"@ladjs/redis@^1.0.2":
457-
version "1.0.2"
458-
resolved "https://registry.yarnpkg.com/@ladjs/redis/-/redis-1.0.2.tgz#04dcfcd96606375927e0a07f3b088e33da27d1bc"
459-
integrity sha512-B7SYfjj0GRfQ8R7I+dvGY0Xk9NHoxEgoxC83vQUFHFWsWxIOh4R2bBKxopba+/7I+NX7GQxZVMYmAlrn7ajJNg==
456+
"@ladjs/redis@^1.0.3":
457+
version "1.0.3"
458+
resolved "https://registry.yarnpkg.com/@ladjs/redis/-/redis-1.0.3.tgz#4232bfea8af56c07a7b43e651c1f0762e888e917"
459+
integrity sha512-oO/vSfhkMkxwtnx4oXZtE8zIhOz2sAC+AdoAsPtRBedO5qvUqARIffUcu5TMtK4ubI2Dq3wm+TA0cDN1euzY1g==
460460
dependencies:
461461
ioredis "^4.14.0"
462462

463-
"@ladjs/shared-config@^0.0.7":
464-
version "0.0.7"
465-
resolved "https://registry.yarnpkg.com/@ladjs/shared-config/-/shared-config-0.0.7.tgz#85cf61a38aebdbd57a8487edddc899e27baae1fc"
466-
integrity sha512-FI2jEwLLx+ZhZ527R7/+UhxaICoC0a3faK9/ydlaBsj6UXq+0J9DvQwPzfUBsgXKc4LXtU/UYmIDW07pzRVXqg==
463+
"@ladjs/shared-config@^0.0.8":
464+
version "0.0.8"
465+
resolved "https://registry.yarnpkg.com/@ladjs/shared-config/-/shared-config-0.0.8.tgz#d90d72dc7d7f685babf69dfda68806929afcab4c"
466+
integrity sha512-+GptNuh16b2jJo6SWGqm6YVsnfVC9tzHRQ2P9pfdQGYPadWMHx/swL+u6/u8cQGBRGkpX/VzrpMo0txsfcGRpg==
467467
dependencies:
468468
boolean "^1.0.0"
469469

@@ -982,10 +982,10 @@ ava@^2.3.0:
982982
update-notifier "^3.0.1"
983983
write-file-atomic "^3.0.0"
984984

985-
axe@^4.0.1:
986-
version "4.0.1"
987-
resolved "https://registry.yarnpkg.com/axe/-/axe-4.0.1.tgz#f89cd847c6edbec671ae5ee244326c499bb3e813"
988-
integrity sha512-zrvqWZ/4xqxvwjoH4ogGJPCjpCBBv9kMtIf9erUv7WcE17nblBPaUrc/r7+wFyNemdQ15W5fz61hsPOJKvxaEQ==
985+
axe@^4.0.3:
986+
version "4.0.3"
987+
resolved "https://registry.yarnpkg.com/axe/-/axe-4.0.3.tgz#b83d9cc37f04874958486a47b78cda798945f42a"
988+
integrity sha512-DsnmuHoRoxet1BHOLxderq9DIh58T7pvKga2qWYcQuDWO25EcgH/Svc+AsPoZj65tm4D9V2sZI7v1b/qzutEWQ==
989989
dependencies:
990990
boolean "^1.0.0"
991991
console-polyfill "^0.3.0"
@@ -1184,13 +1184,13 @@ [email protected], bytes@^3.0.0:
11841184
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
11851185
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
11861186

1187-
cabin@^5.0.1:
1188-
version "5.0.1"
1189-
resolved "https://registry.yarnpkg.com/cabin/-/cabin-5.0.1.tgz#0bd2966f485be9112dd25ffcd7e55f63c9d78573"
1190-
integrity sha512-xjmBPTeE3EdIrdKI++gHHI38yJse5sXUT3QnYCsmtC48zVUSn9aBDO7Sa/9Ga0B++Wnrpn6rWzquOa5gYYB1Pw==
1187+
cabin@^5.0.3:
1188+
version "5.0.3"
1189+
resolved "https://registry.yarnpkg.com/cabin/-/cabin-5.0.3.tgz#86bd985de8ecf3342e6b9a5f02235aeecc073b97"
1190+
integrity sha512-czCHOvm6lkc1ag7MxvLH3cU0i7Ua4utczE99On0khiYup0gcFh7cEnjprgmw10bE/4QXyz/+/R2kIrnxE6hudw==
11911191
dependencies:
11921192
ansi-colors "^4.1.1"
1193-
axe "^4.0.1"
1193+
axe "^4.0.3"
11941194
basic-auth "^2.0.1"
11951195
clf-date "^0.1.0"
11961196
iserror "^0.0.2"
@@ -2160,11 +2160,6 @@ detect-indent@^5.0.0:
21602160
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d"
21612161
integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50=
21622162

2163-
detect-node@^2.0.4:
2164-
version "2.0.4"
2165-
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
2166-
integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
2167-
21682163
dir-glob@^2.2.2:
21692164
version "2.2.2"
21702165
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
@@ -3358,11 +3353,6 @@ graceful-fs@*, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, gra
33583353
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
33593354
integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
33603355

3361-
handle-thing@^2.0.0:
3362-
version "2.0.0"
3363-
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
3364-
integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
3365-
33663356
handlebars@^4.1.2:
33673357
version "4.2.0"
33683358
resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e"
@@ -3510,16 +3500,6 @@ hosted-git-info@^2.1.4, hosted-git-info@^2.5.0:
35103500
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546"
35113501
integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==
35123502

3513-
hpack.js@^2.1.6:
3514-
version "2.1.6"
3515-
resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
3516-
integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
3517-
dependencies:
3518-
inherits "^2.0.1"
3519-
obuf "^1.0.0"
3520-
readable-stream "^2.0.1"
3521-
wbuf "^1.1.0"
3522-
35233503
35243504
version "2.0.0"
35253505
resolved "https://registry.yarnpkg.com/hpkp/-/hpkp-2.0.0.tgz#10e142264e76215a5d30c44ec43de64dee6d1672"
@@ -3545,11 +3525,6 @@ http-cache-semantics@^4.0.0:
35453525
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz#495704773277eeef6e43f9ab2c2c7d259dda25c5"
35463526
integrity sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==
35473527

3548-
http-deceiver@^1.2.7:
3549-
version "1.2.7"
3550-
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
3551-
integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
3552-
35533528
[email protected], http-errors@^1.3.1, http-errors@^1.6.3, http-errors@~1.7.2:
35543529
version "1.7.3"
35553530
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
@@ -3770,11 +3745,6 @@ ioredis@^4.14.0:
37703745
redis-parser "^3.0.0"
37713746
standard-as-callback "^2.0.1"
37723747

3773-
ip@^1.1.5:
3774-
version "1.1.5"
3775-
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
3776-
integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
3777-
37783748
irregular-plurals@^2.0.0:
37793749
version "2.0.0"
37803750
resolved "https://registry.yarnpkg.com/irregular-plurals/-/irregular-plurals-2.0.0.tgz#39d40f05b00f656d0b7fa471230dd3b714af2872"
@@ -5222,11 +5192,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
52225192
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
52235193
integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
52245194

5225-
minimalistic-assert@^1.0.0:
5226-
version "1.0.1"
5227-
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
5228-
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
5229-
52305195
"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.4:
52315196
version "3.0.4"
52325197
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -5644,11 +5609,6 @@ observable-to-promise@^1.0.0:
56445609
is-observable "^2.0.0"
56455610
symbol-observable "^1.0.4"
56465611

5647-
obuf@^1.0.0, obuf@^1.1.2:
5648-
version "1.1.2"
5649-
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
5650-
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
5651-
56525612
omit.js@^1.0.2:
56535613
version "1.0.2"
56545614
resolved "https://registry.yarnpkg.com/omit.js/-/omit.js-1.0.2.tgz#91a14f0eba84066dfa015bf30e474c47f30bc858"
@@ -6348,7 +6308,7 @@ read-pkg@^5.1.1:
63486308
parse-json "^5.0.0"
63496309
type-fest "^0.6.0"
63506310

6351-
readable-stream@2, readable-stream@^2.0.1, readable-stream@^2.3.5, readable-stream@~2.3.6:
6311+
readable-stream@2, readable-stream@^2.3.5, readable-stream@~2.3.6:
63526312
version "2.3.6"
63536313
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
63546314
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
@@ -6361,7 +6321,7 @@ readable-stream@2, readable-stream@^2.0.1, readable-stream@^2.3.5, readable-stre
63616321
string_decoder "~1.1.1"
63626322
util-deprecate "~1.0.1"
63636323

6364-
readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.4.0:
6324+
readable-stream@^3.0.2, readable-stream@^3.4.0:
63656325
version "3.4.0"
63666326
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
63676327
integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
@@ -7553,11 +7513,6 @@ scandirectory@^2.5.0:
75537513
safefs "^3.1.2"
75547514
taskgroup "^4.0.5"
75557515

7556-
select-hose@^2.0.0:
7557-
version "2.0.0"
7558-
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
7559-
integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
7560-
75617516
semver-compare@^1.0.0:
75627517
version "1.0.0"
75637518
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
@@ -7792,29 +7747,6 @@ spdx-license-list@^3.0.1:
77927747
resolved "https://registry.yarnpkg.com/spdx-license-list/-/spdx-license-list-3.0.1.tgz#163d72123e00f4f8bd6e18125696b009f1248ff5"
77937748
integrity sha1-Fj1yEj4A9Pi9bhgSVpawCfEkj/U=
77947749

7795-
spdy-transport@^3.0.0:
7796-
version "3.0.0"
7797-
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
7798-
integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
7799-
dependencies:
7800-
debug "^4.1.0"
7801-
detect-node "^2.0.4"
7802-
hpack.js "^2.1.6"
7803-
obuf "^1.1.2"
7804-
readable-stream "^3.0.6"
7805-
wbuf "^1.7.3"
7806-
7807-
spdy@^4.0.1:
7808-
version "4.0.1"
7809-
resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2"
7810-
integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==
7811-
dependencies:
7812-
debug "^4.1.0"
7813-
handle-thing "^2.0.0"
7814-
http-deceiver "^1.2.7"
7815-
select-hose "^2.0.0"
7816-
spdy-transport "^3.0.0"
7817-
78187750
split-string@^3.0.1, split-string@^3.0.2:
78197751
version "3.1.0"
78207752
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -8805,13 +8737,6 @@ watchr@~2.4.13:
88058737
taskgroup "^4.2.0"
88068738
typechecker "^2.0.8"
88078739

8808-
wbuf@^1.1.0, wbuf@^1.7.3:
8809-
version "1.7.3"
8810-
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
8811-
integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
8812-
dependencies:
8813-
minimalistic-assert "^1.0.0"
8814-
88158740
wcwidth@^1.0.1:
88168741
version "1.0.1"
88178742
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"

0 commit comments

Comments
 (0)