From cfd95ac024c99b8b829e85159e901ab33f5e0b70 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 27 Oct 2018 11:02:34 -0400 Subject: [PATCH 1/2] dont buffer stdout/stderr --- src/api/dev.ts | 11 ++--------- src/cli.ts | 18 ++++++++---------- src/interfaces.ts | 1 - 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/api/dev.ts b/src/api/dev.ts index d5fb13e..54fddc9 100644 --- a/src/api/dev.ts +++ b/src/api/dev.ts @@ -214,12 +214,9 @@ class Watcher extends EventEmitter { // TODO watch the configs themselves? const compilers: Compilers = await create_compilers(this.bundler, cwd, src, dest, false); - let log = ''; - const emitFatal = () => { this.emit('fatal', { - message: `Server crashed`, - log + message: `Server crashed` }); this.crashed = true; @@ -236,7 +233,6 @@ class Watcher extends EventEmitter { handle_result: (result: CompileResult) => { deferred.promise.then(() => { const restart = () => { - log = ''; this.crashed = false; ports.wait(this.port) @@ -260,8 +256,7 @@ class Watcher extends EventEmitter { if (this.crashed) return; this.emit('fatal', { - message: `Server is not listening on port ${this.port}`, - log + message: `Server is not listening on port ${this.port}` }); }); }; @@ -292,12 +287,10 @@ class Watcher extends EventEmitter { }); this.proc.stdout.on('data', chunk => { - log += chunk; this.emit('stdout', chunk); }); this.proc.stderr.on('data', chunk => { - log += chunk; this.emit('stderr', chunk); }); diff --git a/src/cli.ts b/src/cli.ts index ddd0ce6..d3e8667 100755 --- a/src/cli.ts +++ b/src/cli.ts @@ -64,6 +64,14 @@ prog.command('dev') let first = true; + watcher.on('stdout', data => { + process.stdout.write(data); + }); + + watcher.on('stderr', data => { + process.stderr.write(data); + }); + watcher.on('ready', async (event: ReadyEvent) => { if (first) { console.log(colors.bold.cyan(`> Listening on http://localhost:${event.port}`)); @@ -73,16 +81,6 @@ prog.command('dev') } first = false; } - - // TODO clear screen? - - event.process.stdout.on('data', data => { - process.stdout.write(data); - }); - - event.process.stderr.on('data', data => { - process.stderr.write(data); - }); }); watcher.on('invalid', (event: InvalidEvent) => { diff --git a/src/interfaces.ts b/src/interfaces.ts index 93470af..77bc681 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -69,7 +69,6 @@ export type ErrorEvent = { export type FatalEvent = { message: string; - log?: string; }; export type InvalidEvent = { From c5a80543b3c8dcc1b8493ea5a0cfe8e2cb24d5dc Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Sat, 27 Oct 2018 11:12:10 -0400 Subject: [PATCH 2/2] reduce flakiness of unrelated test --- test/apps/errors/test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/apps/errors/test.ts b/test/apps/errors/test.ts index 60b6397..539587d 100644 --- a/test/apps/errors/test.ts +++ b/test/apps/errors/test.ts @@ -127,9 +127,11 @@ describe('errors', function() { await prefetchRoutes(); await page.click('[href="enhance-your-calm"]'); + await wait(50); assert.equal(await title(), '420'); await page.goBack(); + await wait(50); assert.equal(await title(), 'No error here'); }); }); \ No newline at end of file