Skip to content

Commit 895d0e2

Browse files
authored
Merge pull request #68 from simplabs/chunked-response
Chunked responses
2 parents 941596f + 93375db commit 895d0e2

5 files changed

Lines changed: 54 additions & 28 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ let server = new FastBootAppServer({
4343
gzip: true, // Optional - Enables gzip compression.
4444
host: '0.0.0.0', // Optional - Sets the host the server listens on.
4545
port: 4000, // Optional - Sets the port the server listens on (defaults to the PORT env var or 3000).
46-
sandboxGlobals: { GLOBAL_VALUE: MY_GLOBAL } // Optional - Make values available to the Ember app running in the FastBoot server, e.g. "MY_GLOBAL" will be available as "GLOBAL_VALUE"
46+
sandboxGlobals: { GLOBAL_VALUE: MY_GLOBAL } // Optional - Make values available to the Ember app running in the FastBoot server, e.g. "MY_GLOBAL" will be available as "GLOBAL_VALUE",
47+
chunkedResponse: true // Optional - Opt-in to chunked transfer encoding, transferring the head, body and potential shoeboxes in separate chunks. Chunked transfer encoding should have a positive effect in particular when the app transfers a lot of data in the shoebox.
4748
});
4849

4950
server.start();

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"compression": "^1.6.2",
3131
"express": "^4.13.3",
3232
"fastboot": "^1.1.0",
33-
"fastboot-express-middleware": "^1.1.0",
33+
"fastboot-express-middleware": "^1.1.1",
3434
"fs-promise": "^2.0.3",
3535
"request": "^2.81.0"
3636
},

src/fastboot-app-server.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class FastBootAppServer {
2424
this.beforeMiddleware = options.beforeMiddleware;
2525
this.afterMiddleware = options.afterMiddleware;
2626
this.sandboxGlobals = options.sandboxGlobals;
27+
this.chunkedResponse = options.chunkedResponse;
2728

2829
if (!this.ui) {
2930
let UI = require('./ui');
@@ -45,7 +46,8 @@ class FastBootAppServer {
4546
httpServer: this.httpServer,
4647
beforeMiddleware: this.beforeMiddleware,
4748
afterMiddleware: this.afterMiddleware,
48-
sandboxGlobals: this.sandboxGlobals
49+
sandboxGlobals: this.sandboxGlobals,
50+
chunkedResponse: this.chunkedResponse,
4951
});
5052

5153
this.worker.start();

src/worker.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class Worker {
1818
this.beforeMiddleware = options.beforeMiddleware;
1919
this.afterMiddleware = options.afterMiddleware;
2020
this.sandboxGlobals = options.sandboxGlobals;
21+
this.chunkedResponse = options.chunkedResponse;
2122

2223
if (!this.httpServer) {
2324
this.httpServer = new ExpressHTTPServer({
@@ -76,7 +77,8 @@ class Worker {
7677
});
7778

7879
return fastbootMiddleware({
79-
fastboot: this.fastboot
80+
fastboot: this.fastboot,
81+
chunkedResponse: this.chunkedResponse,
8082
});
8183
}
8284

yarn.lock

Lines changed: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,13 @@ [email protected]:
612612
version "0.1.0"
613613
resolved "https://registry.yarnpkg.com/base64id/-/base64id-0.1.0.tgz#02ce0fdeee0cef4f40080e1e73e834f0b1bfce3f"
614614

615-
basic-auth@^1.0.3, basic-auth@~1.1.0:
615+
basic-auth@^2.0.0:
616+
version "2.0.0"
617+
resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.0.tgz#015db3f353e02e56377755f962742e8981e7bbba"
618+
dependencies:
619+
safe-buffer "5.1.1"
620+
621+
basic-auth@~1.1.0:
616622
version "1.1.0"
617623
resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884"
618624

@@ -640,11 +646,7 @@ [email protected]:
640646
version "0.0.4"
641647
resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921"
642648

643-
bluebird@^3.1.1, bluebird@^3.4.6:
644-
version "3.5.0"
645-
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c"
646-
647-
bluebird@^3.5.0:
649+
bluebird@^3.1.1, bluebird@^3.4.6, bluebird@^3.5.0:
648650
version "3.5.1"
649651
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
650652

@@ -1121,7 +1123,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
11211123
dependencies:
11221124
delayed-stream "~1.0.0"
11231125

1124-
1126+
[email protected], commander@^2.6.0:
11251127
version "2.11.0"
11261128
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
11271129

@@ -1131,12 +1133,6 @@ [email protected]:
11311133
dependencies:
11321134
graceful-readlink ">= 1.0.0"
11331135

1134-
commander@^2.6.0:
1135-
version "2.9.0"
1136-
resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
1137-
dependencies:
1138-
graceful-readlink ">= 1.0.0"
1139-
11401136
11411137
version "1.0.0"
11421138
resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
@@ -1811,12 +1807,12 @@ fast-sourcemap-concat@^1.0.1:
18111807
source-map "^0.4.2"
18121808
source-map-url "^0.3.0"
18131809

1814-
fastboot-express-middleware@^1.1.0:
1815-
version "1.1.0"
1816-
resolved "https://registry.yarnpkg.com/fastboot-express-middleware/-/fastboot-express-middleware-1.1.0.tgz#b77216dfd1effe1065b94075b8b4c5912095cb10"
1810+
fastboot-express-middleware@^1.1.1:
1811+
version "1.1.1"
1812+
resolved "https://registry.yarnpkg.com/fastboot-express-middleware/-/fastboot-express-middleware-1.1.1.tgz#b6e156a3acbaecef42b1f023ebb8405a934c28e6"
18171813
dependencies:
18181814
chalk "^2.0.1"
1819-
fastboot "^1.1.0"
1815+
fastboot "^1.1.2"
18201816
request "^2.81.0"
18211817

18221818
fastboot@^1.1.0:
@@ -1832,6 +1828,19 @@ fastboot@^1.1.0:
18321828
simple-dom "^1.0.0"
18331829
source-map-support "^0.4.18"
18341830

1831+
fastboot@^1.1.2:
1832+
version "1.1.2"
1833+
resolved "https://registry.yarnpkg.com/fastboot/-/fastboot-1.1.2.tgz#1cb4b6423aacc4339fbf003cc7b6ecabd3083dfa"
1834+
dependencies:
1835+
chalk "^2.0.1"
1836+
cookie "^0.3.1"
1837+
debug "^3.0.0"
1838+
exists-sync "0.0.4"
1839+
najax "^1.0.2"
1840+
rsvp "^4.7.0"
1841+
simple-dom "^1.0.0"
1842+
source-map-support "^0.5.0"
1843+
18351844
faye-websocket@~0.10.0:
18361845
version "0.10.0"
18371846
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
@@ -2062,7 +2071,7 @@ glob-parent@^2.0.0:
20622071
dependencies:
20632072
is-glob "^2.0.0"
20642073

2065-
[email protected], glob@^7.0.4, glob@^7.0.5:
2074+
20662075
version "7.1.1"
20672076
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
20682077
dependencies:
@@ -2073,7 +2082,7 @@ [email protected], glob@^7.0.4, glob@^7.0.5:
20732082
once "^1.3.0"
20742083
path-is-absolute "^1.0.0"
20752084

2076-
2085+
[email protected], glob@^7.0.4, glob@^7.0.5:
20772086
version "7.1.2"
20782087
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
20792088
dependencies:
@@ -3525,6 +3534,10 @@ rsvp@^3.0.14, rsvp@^3.0.16, rsvp@^3.0.17, rsvp@^3.0.18, rsvp@^3.0.21, rsvp@^3.2.
35253534
version "3.5.0"
35263535
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.5.0.tgz#a62c573a4ae4e1dfd0697ebc6242e79c681eaa34"
35273536

3537+
rsvp@^4.7.0:
3538+
version "4.7.0"
3539+
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.7.0.tgz#dc1b0b1a536f7dec9d2be45e0a12ad4197c9fd96"
3540+
35283541
rsvp@~3.2.1:
35293542
version "3.2.1"
35303543
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.2.1.tgz#07cb4a5df25add9e826ebc67dcc9fd89db27d84a"
@@ -3539,6 +3552,10 @@ rx@^4.1.0:
35393552
version "4.1.0"
35403553
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
35413554

3555+
3556+
version "5.1.1"
3557+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
3558+
35423559
safe-buffer@^5.0.1, safe-buffer@~5.1.0:
35433560
version "5.1.0"
35443561
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223"
@@ -3698,17 +3715,17 @@ sort-package-json@^1.4.0:
36983715
dependencies:
36993716
sort-object-keys "^1.1.1"
37003717

3701-
source-map-support@^0.4.18:
3718+
source-map-support@^0.4.18, source-map-support@^0.4.2:
37023719
version "0.4.18"
37033720
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f"
37043721
dependencies:
37053722
source-map "^0.5.6"
37063723

3707-
source-map-support@^0.4.2:
3708-
version "0.4.15"
3709-
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
3724+
source-map-support@^0.5.0:
3725+
version "0.5.0"
3726+
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab"
37103727
dependencies:
3711-
source-map "^0.5.6"
3728+
source-map "^0.6.0"
37123729

37133730
source-map-url@^0.3.0:
37143731
version "0.3.0"
@@ -3724,6 +3741,10 @@ source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1:
37243741
version "0.5.6"
37253742
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
37263743

3744+
source-map@^0.6.0:
3745+
version "0.6.1"
3746+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
3747+
37273748
spawn-args@^0.2.0:
37283749
version "0.2.0"
37293750
resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.2.0.tgz#fb7d0bd1d70fd4316bd9e3dec389e65f9d6361bb"

0 commit comments

Comments
 (0)