mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-18 13:35:08 +00:00
emit a fatal event if server crashes
This commit is contained in:
@@ -130,6 +130,12 @@ class Watcher extends EventEmitter {
|
|||||||
// TODO watch the configs themselves?
|
// TODO watch the configs themselves?
|
||||||
const compilers = create_compilers({ webpack: this.dirs.webpack });
|
const compilers = create_compilers({ webpack: this.dirs.webpack });
|
||||||
|
|
||||||
|
const emitFatal = () => {
|
||||||
|
this.emit('fatal', <events.FatalEvent>{
|
||||||
|
message: `Server crashed`
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
this.watch(compilers.server, {
|
this.watch(compilers.server, {
|
||||||
name: 'server',
|
name: 'server',
|
||||||
|
|
||||||
@@ -158,6 +164,7 @@ class Watcher extends EventEmitter {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (this.proc) {
|
if (this.proc) {
|
||||||
|
this.proc.removeListener('exit', emitFatal);
|
||||||
this.proc.kill();
|
this.proc.kill();
|
||||||
this.proc.on('exit', restart);
|
this.proc.on('exit', restart);
|
||||||
} else {
|
} else {
|
||||||
@@ -172,6 +179,14 @@ class Watcher extends EventEmitter {
|
|||||||
stdio: ['ipc']
|
stdio: ['ipc']
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.proc.stdout.on('data', chunk => {
|
||||||
|
this.emit('stdout', chunk);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.proc.stderr.on('data', chunk => {
|
||||||
|
this.emit('stderr', chunk);
|
||||||
|
});
|
||||||
|
|
||||||
this.proc.on('message', message => {
|
this.proc.on('message', message => {
|
||||||
if (message.__sapper__ && message.event === 'basepath') {
|
if (message.__sapper__ && message.event === 'basepath') {
|
||||||
this.emit('basepath', {
|
this.emit('basepath', {
|
||||||
@@ -179,6 +194,8 @@ class Watcher extends EventEmitter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.proc.on('exit', emitFatal);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user