Skip to content

Commit b5719a2

Browse files
committed
Improve async handling and stream cleanup in waitForDeviceToComeOnline
1 parent 48855d9 commit b5719a2

File tree

2 files changed

+32
-14
lines changed

2 files changed

+32
-14
lines changed

dist/index.js

+17-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/action.ts

+15-6
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,32 @@ export async function waitForDeviceToComeOnline(
4646

4747
return new Promise<boolean>((resolve, reject) => {
4848
const flashTimeout = setTimeout(() => {
49-
stream.abort()
50-
stream.stopIdleTimeout()
49+
try {
50+
stream.abort()
51+
stream.stopIdleTimeout()
52+
} catch (cleanupError) {
53+
core.warning(`Error during stream cleanup: ${cleanupError}`)
54+
}
5155
reject(new Error('timed out waiting for device to come back online'))
5256
}, timeoutMs)
5357

5458
core.info('waiting for device to come online')
55-
stream.on('event', (event: {data: string}) => {
59+
60+
stream.on('event', async (event: {data: string}) => {
5661
try {
5762
if (event.data === 'online') {
5863
core.info('device is online')
5964
clearTimeout(flashTimeout)
60-
stream.abort()
61-
stream.stopIdleTimeout()
65+
try {
66+
stream.abort()
67+
stream.stopIdleTimeout()
68+
} catch (cleanupError) {
69+
core.warning(`Error during stream cleanup: ${cleanupError}`)
70+
}
6271
resolve(true)
6372
}
6473
} catch (error) {
65-
if (error instanceof Error) core.debug(error.message)
74+
core.warning(`Error in stream event handler: ${(error as Error).message}`)
6675
reject(new Error('error waiting for device to come online'))
6776
}
6877
})

0 commit comments

Comments
 (0)