From f5fb0ce2754919d6b8e898500ffe508edfddd8a2 Mon Sep 17 00:00:00 2001 From: Touseef Liaqat Date: Thu, 24 Aug 2023 22:50:37 -0700 Subject: [PATCH] chore(xsnap): resolve floating-promise warnings --- packages/xsnap/src/xsnap.js | 13 ++++++++----- packages/xsnap/src/xsrepl.js | 2 +- packages/xsnap/test/fixture-xsnap-script.js | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/xsnap/src/xsnap.js b/packages/xsnap/src/xsnap.js index 5d605d581f2..4cccd30b6dc 100644 --- a/packages/xsnap/src/xsnap.js +++ b/packages/xsnap/src/xsnap.js @@ -152,7 +152,7 @@ export async function xsnap(options) { sourceStream.pipe(destStream, { end: false }); done = finished(sourceStream); - done.catch(noop).then(() => sourceStream.unpipe(destStream)); + void done.catch(noop).then(() => sourceStream.unpipe(destStream)); }; return harden({ @@ -258,7 +258,7 @@ export async function xsnap(options) { await loadSnapshotHandler?.afterSpawn(snapshotLoadStream); if (loadSnapshotHandler) { - vatExit.promise.catch(noop).then(() => { + void vatExit.promise.catch(noop).then(() => { if (loadSnapshotHandler) { const { cleanup } = loadSnapshotHandler; loadSnapshotHandler = undefined; @@ -458,10 +458,13 @@ export async function xsnap(options) { const handle = await fs.open(snapPath, 'w+'); // @ts-expect-error 'close' event added in Node 15.4 handle.on('close', () => { - fs.unlink(snapPath); + // Safe to ignore the result because we are skipping to to clean up the temp directory. + void fs.unlink(snapPath); }); sourceStream = handle.createReadStream(); - finished(output).finally(() => sourceStream.destroy()); + finished(output) + .finally(() => sourceStream.destroy()) + .catch(noop); } else { sourceStream = snapshotSaveStream; snapPath = `@${SNAPSHOT_SAVE_FD}`; @@ -470,7 +473,7 @@ export async function xsnap(options) { // ensuring that any previous save stream usage has ended. However we // must start the flow before receiving the command's response or the // xsnap process would block on a full pipe, causing an IPC deadlock. - batonKit.promise.then(maybePipe); + batonKit.promise.then(maybePipe, noop); } const cleanup = () => { diff --git a/packages/xsnap/src/xsrepl.js b/packages/xsnap/src/xsrepl.js index 0f2e5b6f7b7..45369109a1b 100755 --- a/packages/xsnap/src/xsrepl.js +++ b/packages/xsnap/src/xsrepl.js @@ -97,4 +97,4 @@ async function main() { return vat.close(); } -main(); +await main().catch(err => console.log(err)); diff --git a/packages/xsnap/test/fixture-xsnap-script.js b/packages/xsnap/test/fixture-xsnap-script.js index 170883f397e..d2c06c4e935 100644 --- a/packages/xsnap/test/fixture-xsnap-script.js +++ b/packages/xsnap/test/fixture-xsnap-script.js @@ -1,5 +1,5 @@ /* eslint @typescript-eslint/no-floating-promises: "warn" */ /* global issueCommand */ -(async () => { +void (async () => { issueCommand(new TextEncoder().encode('Hello, World!').buffer); })();