From 5d7a71512271c7a259c99bd6b38d00c907540ef0 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 21 Jul 2018 10:38:25 -0400 Subject: [PATCH] emit error event if manifest creation fails --- src/api/dev.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/api/dev.ts b/src/api/dev.ts index 712b302..eb2a769 100644 --- a/src/api/dev.ts +++ b/src/api/dev.ts @@ -105,8 +105,15 @@ class Watcher extends EventEmitter { const dev_port = await ports.find(10000); - const routes = create_routes(); - create_main_manifests({ routes, dev_port }); + try { + const routes = create_routes(); + create_main_manifests({ routes, dev_port }); + } catch (err) { + this.emit('fatal', { + message: err.message + }); + return; + } this.dev_server = new DevServer(dev_port); @@ -114,6 +121,15 @@ class Watcher extends EventEmitter { watch_files(locations.routes(), ['add', 'unlink'], () => { const routes = create_routes(); create_main_manifests({ routes, dev_port }); + + try { + const routes = create_routes(); + create_main_manifests({ routes, dev_port }); + } catch (err) { + this.emit('error', { + message: err.message + }); + } }), watch_files(`${locations.app()}/template.html`, ['change'], () => { @@ -272,7 +288,7 @@ class Watcher extends EventEmitter { if (this.closed) return; this.closed = true; - this.dev_server.close(); + if (this.dev_server) this.dev_server.close(); if (this.proc) this.proc.kill(); this.filewatchers.forEach(watcher => {