mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-20 22:35:09 +00:00
pass response object to store getter - fixes #344
This commit is contained in:
@@ -83,7 +83,7 @@ function toIgnore(uri: string, val: any) {
|
|||||||
|
|
||||||
export default function middleware(opts: {
|
export default function middleware(opts: {
|
||||||
manifest: Manifest,
|
manifest: Manifest,
|
||||||
store: (req: Req) => Store,
|
store: (req: Req, res: ServerResponse) => Store,
|
||||||
ignore?: any,
|
ignore?: any,
|
||||||
routes?: any // legacy
|
routes?: any // legacy
|
||||||
}) {
|
}) {
|
||||||
@@ -276,7 +276,10 @@ function get_server_route_handler(routes: ServerRoute[]) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_page_handler(manifest: Manifest, store_getter: (req: Req) => Store) {
|
function get_page_handler(
|
||||||
|
manifest: Manifest,
|
||||||
|
store_getter: (req: Req, res: ServerResponse) => Store
|
||||||
|
) {
|
||||||
const output = locations.dest();
|
const output = locations.dest();
|
||||||
|
|
||||||
const get_chunks = dev()
|
const get_chunks = dev()
|
||||||
@@ -326,7 +329,7 @@ function get_page_handler(manifest: Manifest, store_getter: (req: Req) => Store)
|
|||||||
|
|
||||||
res.setHeader('Link', link);
|
res.setHeader('Link', link);
|
||||||
|
|
||||||
const store = store_getter ? store_getter(req) : null;
|
const store = store_getter ? store_getter(req, res) : null;
|
||||||
|
|
||||||
let redirect: { statusCode: number, location: string };
|
let redirect: { statusCode: number, location: string };
|
||||||
let preload_error: { statusCode: number, message: Error | string };
|
let preload_error: { statusCode: number, message: Error | string };
|
||||||
|
|||||||
@@ -85,11 +85,18 @@ const middlewares = [
|
|||||||
next();
|
next();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// set up some values for the store
|
||||||
|
(req, res, next) => {
|
||||||
|
req.hello = 'hello';
|
||||||
|
res.locals = { name: 'world' };
|
||||||
|
next();
|
||||||
|
},
|
||||||
|
|
||||||
sapper({
|
sapper({
|
||||||
manifest,
|
manifest,
|
||||||
store: () => {
|
store: (req, res) => {
|
||||||
return new Store({
|
return new Store({
|
||||||
title: 'Stored title'
|
title: `${req.hello} ${res.locals.name}`
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
ignore: [
|
ignore: [
|
||||||
|
|||||||
@@ -581,11 +581,11 @@ function run({ mode, basepath = '' }) {
|
|||||||
return nightmare.goto(`${base}/store`)
|
return nightmare.goto(`${base}/store`)
|
||||||
.page.title()
|
.page.title()
|
||||||
.then(title => {
|
.then(title => {
|
||||||
assert.equal(title, 'Stored title');
|
assert.equal(title, 'hello world');
|
||||||
return nightmare.init().page.title();
|
return nightmare.init().page.title();
|
||||||
})
|
})
|
||||||
.then(title => {
|
.then(title => {
|
||||||
assert.equal(title, 'Stored title');
|
assert.equal(title, 'hello world');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user