mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-13 03:25:24 +00:00
wip 2
This commit is contained in:
74
src/middleware/create_watcher.js
Normal file
74
src/middleware/create_watcher.js
Normal file
@@ -0,0 +1,74 @@
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import chalk from 'chalk';
|
||||
import { compilers, generate_asset_cache } from 'sapper/core.js';
|
||||
import { dest } from '../config.js';
|
||||
|
||||
function deferred() {
|
||||
const d = {};
|
||||
|
||||
d.promise = new Promise((fulfil, reject) => {
|
||||
d.fulfil = fulfil;
|
||||
d.reject = reject;
|
||||
});
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
export default function create_watcher() {
|
||||
const deferreds = {
|
||||
client: deferred(),
|
||||
server: deferred()
|
||||
};
|
||||
|
||||
const invalidate = () => Promise.all([
|
||||
deferreds.client.promise,
|
||||
deferreds.server.promise
|
||||
]).then(([client_stats, server_stats]) => {
|
||||
const client_info = client_stats.toJson();
|
||||
fs.writeFileSync(path.join(dest, 'stats.client.json'), JSON.stringify(client_info, null, ' '));
|
||||
|
||||
const server_info = server_stats.toJson();
|
||||
fs.writeFileSync(path.join(dest, 'stats.server.json'), JSON.stringify(server_info, null, ' '));
|
||||
|
||||
return generate_asset_cache(
|
||||
client_stats.toJson(),
|
||||
server_stats.toJson()
|
||||
);
|
||||
});
|
||||
|
||||
function watch_compiler(type) {
|
||||
const compiler = compilers[type];
|
||||
|
||||
compiler.plugin('invalid', filename => {
|
||||
console.log(chalk.cyan(`${type} bundle invalidated, file changed: ${chalk.bold(filename)}`));
|
||||
deferreds[type] = deferred();
|
||||
watcher.ready = invalidate();
|
||||
});
|
||||
|
||||
compiler.plugin('failed', err => {
|
||||
deferreds[type].reject(err);
|
||||
});
|
||||
|
||||
return compiler.watch({}, (err, stats) => {
|
||||
if (stats.hasErrors()) {
|
||||
deferreds[type].reject(stats.toJson().errors[0]);
|
||||
} else {
|
||||
deferreds[type].fulfil(stats);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const watcher = {
|
||||
ready: invalidate(),
|
||||
client: watch_compiler('client'),
|
||||
server: watch_compiler('server'),
|
||||
|
||||
close: () => {
|
||||
watcher.client.close();
|
||||
watcher.server.close();
|
||||
}
|
||||
};
|
||||
|
||||
return watcher;
|
||||
}
|
||||
@@ -2,12 +2,8 @@ import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import serialize from 'serialize-javascript';
|
||||
import escape_html from 'escape-html';
|
||||
import * as route_manager from '../shared/route_manager.js';
|
||||
import * as templates from '../shared/templates.js';
|
||||
import create_app from '../shared/utils/create_app.js';
|
||||
import create_watcher from '../shared/utils/create_watcher.js';
|
||||
import * as compilers from '../shared/utils/compilers.js';
|
||||
import generate_asset_cache from '../shared/generate_asset_cache.js';
|
||||
import { route_manager, templates, create_app, compilers, generate_asset_cache } from 'sapper/core.js';
|
||||
import create_watcher from './create_watcher.js';
|
||||
import { dest, dev } from '../config.js';
|
||||
|
||||
function connect_dev() {
|
||||
|
||||
@@ -1,154 +0,0 @@
|
||||
[
|
||||
{
|
||||
"x": 1979,
|
||||
"y": 7.19
|
||||
},
|
||||
{
|
||||
"x": 1980,
|
||||
"y": 7.83
|
||||
},
|
||||
{
|
||||
"x": 1981,
|
||||
"y": 7.24
|
||||
},
|
||||
{
|
||||
"x": 1982,
|
||||
"y": 7.44
|
||||
},
|
||||
{
|
||||
"x": 1983,
|
||||
"y": 7.51
|
||||
},
|
||||
{
|
||||
"x": 1984,
|
||||
"y": 7.1
|
||||
},
|
||||
{
|
||||
"x": 1985,
|
||||
"y": 6.91
|
||||
},
|
||||
{
|
||||
"x": 1986,
|
||||
"y": 7.53
|
||||
},
|
||||
{
|
||||
"x": 1987,
|
||||
"y": 7.47
|
||||
},
|
||||
{
|
||||
"x": 1988,
|
||||
"y": 7.48
|
||||
},
|
||||
{
|
||||
"x": 1989,
|
||||
"y": 7.03
|
||||
},
|
||||
{
|
||||
"x": 1990,
|
||||
"y": 6.23
|
||||
},
|
||||
{
|
||||
"x": 1991,
|
||||
"y": 6.54
|
||||
},
|
||||
{
|
||||
"x": 1992,
|
||||
"y": 7.54
|
||||
},
|
||||
{
|
||||
"x": 1993,
|
||||
"y": 6.5
|
||||
},
|
||||
{
|
||||
"x": 1994,
|
||||
"y": 7.18
|
||||
},
|
||||
{
|
||||
"x": 1995,
|
||||
"y": 6.12
|
||||
},
|
||||
{
|
||||
"x": 1996,
|
||||
"y": 7.87
|
||||
},
|
||||
{
|
||||
"x": 1997,
|
||||
"y": 6.73
|
||||
},
|
||||
{
|
||||
"x": 1998,
|
||||
"y": 6.55
|
||||
},
|
||||
{
|
||||
"x": 1999,
|
||||
"y": 6.23
|
||||
},
|
||||
{
|
||||
"x": 2000,
|
||||
"y": 6.31
|
||||
},
|
||||
{
|
||||
"x": 2001,
|
||||
"y": 6.74
|
||||
},
|
||||
{
|
||||
"x": 2002,
|
||||
"y": 5.95
|
||||
},
|
||||
{
|
||||
"x": 2003,
|
||||
"y": 6.13
|
||||
},
|
||||
{
|
||||
"x": 2004,
|
||||
"y": 6.04
|
||||
},
|
||||
{
|
||||
"x": 2005,
|
||||
"y": 5.56
|
||||
},
|
||||
{
|
||||
"x": 2006,
|
||||
"y": 5.91
|
||||
},
|
||||
{
|
||||
"x": 2007,
|
||||
"y": 4.29
|
||||
},
|
||||
{
|
||||
"x": 2008,
|
||||
"y": 4.72
|
||||
},
|
||||
{
|
||||
"x": 2009,
|
||||
"y": 5.38
|
||||
},
|
||||
{
|
||||
"x": 2010,
|
||||
"y": 4.92
|
||||
},
|
||||
{
|
||||
"x": 2011,
|
||||
"y": 4.61
|
||||
},
|
||||
{
|
||||
"x": 2012,
|
||||
"y": 3.62
|
||||
},
|
||||
{
|
||||
"x": 2013,
|
||||
"y": 5.35
|
||||
},
|
||||
{
|
||||
"x": 2014,
|
||||
"y": 5.28
|
||||
},
|
||||
{
|
||||
"x": 2015,
|
||||
"y": 4.63
|
||||
},
|
||||
{
|
||||
"x": 2016,
|
||||
"y": 4.72
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user