Merge pull request #54 from sveltejs/preload-req

pass server request object to preload
This commit is contained in:
Rich Harris
2017-12-31 13:02:24 -05:00
committed by GitHub
3 changed files with 19 additions and 2 deletions

View File

@@ -151,7 +151,7 @@ function get_route_handler(fn) {
const data = { params: req.params, query: req.query };
if (mod.preload) {
const promise = Promise.resolve(mod.preload(data)).then(preloaded => {
const promise = Promise.resolve(mod.preload(req)).then(preloaded => {
Object.assign(data, preloaded);
return mod.render(data);
});

View File

@@ -0,0 +1,9 @@
<p>URL is {{url}}</p>
<script>
export default {
preload({ url }) {
return { url };
}
};
</script>

View File

@@ -11,7 +11,7 @@ run('development');
function run(env) {
describe(`env=${env}`, function () {
this.timeout(5000);
this.timeout(20000);
let PORT;
let server;
@@ -267,6 +267,14 @@ function run(env) {
'About this site'
);
});
it('passes entire request object to preload', async () => {
const html = await nightmare
.goto(`${base}/show-url`)
.evaluate(() => document.querySelector('p').innerHTML);
assert.equal(html, `URL is /show-url`);
});
});
describe('headers', () => {