Skip to content
This repository was archived by the owner on Jan 11, 2023. It is now read-only.

Commit 444908c

Browse files
committed
pass response object to store getter - fixes #344
1 parent 666c113 commit 444908c

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

src/middleware.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ function toIgnore(uri: string, val: any) {
8383

8484
export default function middleware(opts: {
8585
manifest: Manifest,
86-
store: (req: Req) => Store,
86+
store: (req: Req, res: ServerResponse) => Store,
8787
ignore?: any,
8888
routes?: any // legacy
8989
}) {
@@ -276,7 +276,10 @@ function get_server_route_handler(routes: ServerRoute[]) {
276276
};
277277
}
278278

279-
function get_page_handler(manifest: Manifest, store_getter: (req: Req) => Store) {
279+
function get_page_handler(
280+
manifest: Manifest,
281+
store_getter: (req: Req, res: ServerResponse) => Store
282+
) {
280283
const output = locations.dest();
281284

282285
const get_chunks = dev()
@@ -326,7 +329,7 @@ function get_page_handler(manifest: Manifest, store_getter: (req: Req) => Store)
326329

327330
res.setHeader('Link', link);
328331

329-
const store = store_getter ? store_getter(req) : null;
332+
const store = store_getter ? store_getter(req, res) : null;
330333

331334
let redirect: { statusCode: number, location: string };
332335
let preload_error: { statusCode: number, message: Error | string };

test/app/app/server.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,18 @@ const middlewares = [
8585
next();
8686
},
8787

88+
// set up some values for the store
89+
(req, res, next) => {
90+
req.hello = 'hello';
91+
res.locals = { name: 'world' };
92+
next();
93+
},
94+
8895
sapper({
8996
manifest,
90-
store: () => {
97+
store: (req, res) => {
9198
return new Store({
92-
title: 'Stored title'
99+
title: `${req.hello} ${res.locals.name}`
93100
});
94101
},
95102
ignore: [

test/common/test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -581,11 +581,11 @@ function run({ mode, basepath = '' }) {
581581
return nightmare.goto(`${base}/store`)
582582
.page.title()
583583
.then(title => {
584-
assert.equal(title, 'Stored title');
584+
assert.equal(title, 'hello world');
585585
return nightmare.init().page.title();
586586
})
587587
.then(title => {
588-
assert.equal(title, 'Stored title');
588+
assert.equal(title, 'hello world');
589589
});
590590
});
591591

0 commit comments

Comments
 (0)