From d27775fc4b3fd07471b595bf73b4d1ffc8f68bfa Mon Sep 17 00:00:00 2001 From: Jeff Dickey <216188+jdxcode@users.noreply.github.com> Date: Sat, 12 May 2018 22:24:41 -0700 Subject: [PATCH] feat: added flush --- src/index.ts | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/index.ts b/src/index.ts index 5330f88e..f2bbdafc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -67,6 +67,27 @@ export const cli = { this.log(text) } }, + + async flush() { + function timeout(p: Promise, ms: number) { + function wait(ms: number, unref: boolean = false) { + return new Promise(resolve => { + let t: any = setTimeout(resolve, ms) + if (unref) t.unref() + }) + } + + return Promise.race([p, wait(ms, true).then(() => cli.warn('timed out'))]) + } + + async function flush() { + let p = new Promise(resolve => process.stdout.once('drain', resolve)) + process.stdout.write('') + return p + } + + await timeout(flush(), 10000) + } } export default cli @@ -88,24 +109,3 @@ process.once('exit', async () => { process.exitCode = 1 } }) - -// async function flushStdout() { -// function timeout(p: Promise, ms: number) { -// function wait(ms: number, unref: boolean = false) { -// return new Promise(resolve => { -// let t: any = setTimeout(resolve, ms) -// if (unref) t.unref() -// }) -// } - -// return Promise.race([p, wait(ms, true).then(() => cli.warn('timed out'))]) -// } - -// async function flush() { -// let p = new Promise(resolve => process.stdout.once('drain', resolve)) -// process.stdout.write('') -// return p -// } - -// await timeout(flush(), 10000) -// }