This commit is contained in:
Rich Harris
2017-12-22 09:19:32 -05:00
parent 0bcb61650b
commit 68c2f2e388
9 changed files with 3657 additions and 18 deletions

View File

@@ -1,6 +1,5 @@
const fs = require('fs');
const path = require('path');
const glob = require('glob');
const mkdirp = require('mkdirp');
const rimraf = require('rimraf');
const { client, server } = require('./utils/compilers.js');

View File

@@ -1,9 +1,5 @@
const fs = require('fs');
const path = require('path');
const glob = require('glob');
const rimraf = require('rimraf');
const mkdirp = require('mkdirp');
const webpack = require('webpack');
const route_manager = require('./route_manager.js');
const templates = require('./templates.js');
const create_app = require('./utils/create_app.js');
@@ -11,7 +7,7 @@ const create_watcher = require('./utils/create_watcher.js');
const compilers = require('./utils/compilers.js');
const generate_asset_cache = require('./utils/generate_asset_cache.js');
const escape_html = require('escape-html');
const { src, dest, dev } = require('./config.js');
const { dest, dev } = require('./config.js');
function connect_dev() {
create_app();
@@ -152,7 +148,7 @@ function get_route_handler(fn) {
// TODO detect other stuff we can preload? images, CSS, fonts?
res.set('Link', `<${client.main_file}>;rel="preload";as="script", <${client.routes[route.id]}>;rel="preload";as="script"`);
let data = { params: req.params, query: req.query };
const data = { params: req.params, query: req.query };
if (mod.preload) {
const promise = Promise.resolve(mod.preload(data)).then(preloaded => {
@@ -160,7 +156,7 @@ function get_route_handler(fn) {
return mod.render(data);
});
templates.stream(res, 200, {
await templates.stream(res, 200, {
main: client.main_file,
html: promise.then(rendered => rendered.html),
head: promise.then(({ head }) => `<noscript id='sapper-head-start'></noscript>${head}<noscript id='sapper-head-end'></noscript>`),
@@ -198,7 +194,7 @@ function get_route_handler(fn) {
stack: err && err.stack.split('\n').slice(1).join('\n')
}));
}
}
};
}
function get_not_found_handler(fn) {
@@ -212,7 +208,7 @@ function get_not_found_handler(fn) {
main: asset_cache.client.main_file,
url: req.url
}));
}
};
}
function compose_handlers(handlers) {
@@ -232,7 +228,7 @@ function compose_handlers(handlers) {
}
go();
}
};
}
function read_json(file) {

View File

@@ -57,7 +57,7 @@ function create_templates() {
i = end + 1;
} while (i < template.length);
}
}
};
})
.sort((a, b) => b.specificity - a.specificity);
}

View File

@@ -2,10 +2,10 @@ const fs = require('fs');
const path = require('path');
const chokidar = require('chokidar');
const route_manager = require('../route_manager.js');
const { src, dest, entry, dev } = require('../config.js');
const { src, entry, dev } = require('../config.js');
function posixify(file) {
return file.replace(/[\/\\]/g, '/');
return file.replace(/[/\\]/g, '/');
}
function create_app() {

View File

@@ -74,4 +74,4 @@ module.exports = function create_matchers(files) {
});
return routes;
}
};

View File

@@ -60,7 +60,7 @@ module.exports = function create_watcher() {
});
}
watcher = {
const watcher = {
ready: invalidate(),
client: watch_compiler('client'),
server: watch_compiler('server'),