@typed-assistant/builder 0.0.83 → 0.0.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @typed-assistant/builder
2
2
 
3
+ ## 0.0.84
4
+
5
+ ### Patch Changes
6
+
7
+ - Improve logging for random crashes.
8
+
3
9
  ## 0.0.83
4
10
 
5
11
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typed-assistant/builder",
3
- "version": "0.0.83",
3
+ "version": "0.0.84",
4
4
  "exports": {
5
5
  "./appProcess": "./src/appProcess.tsx",
6
6
  "./bunInstall": "./src/bunInstall.tsx",
@@ -30,7 +30,7 @@
30
30
  "typescript": "^5.4.0",
31
31
  "@typed-assistant/eslint-config": "0.0.10",
32
32
  "@typed-assistant/logger": "0.0.22",
33
- "@typed-assistant/typescript-config": "0.0.10",
33
+ "@typed-assistant/typescript-config": "0.0.11",
34
34
  "@typed-assistant/utils": "0.0.19"
35
35
  },
36
36
  "publishConfig": {
@@ -346,17 +346,35 @@ export const startWebappServer = async ({
346
346
 
347
347
  // eslint-disable-next-line no-constant-condition
348
348
  while (true) {
349
- getSubprocesses().app.exitCode
350
- const stdoutReader = getReader("stdout", getSubprocesses().app.stdout)
351
- const stderrReader = getReader("stderr", getSubprocesses().app.stderr)
352
- const { value } = await stdoutReader.read()
353
- const { value: stderrValue } = value
354
- ? { value: undefined }
355
- : await stderrReader.read()
356
-
357
- const decodedString = stderrValue
358
- ? decoder.decode(stderrValue)
359
- : decoder.decode(value)
349
+ const app = getSubprocesses().app
350
+ const stdoutReader = getReader("stdout", app.stdout)
351
+ const stderrReader = getReader("stderr", app.stderr)
352
+ const stdoutResult = await stdoutReader.read()
353
+ const stderrResult =
354
+ stdoutResult.value === undefined
355
+ ? await stderrReader.read()
356
+ : ({
357
+ value: undefined,
358
+ done: true,
359
+ } satisfies ReadableStreamDefaultReadDoneResult)
360
+
361
+ const streamEnded =
362
+ stdoutResult.done &&
363
+ (stderrResult.done || stderrResult.value === undefined)
364
+ if (streamEnded) {
365
+ logger.warn(
366
+ {
367
+ emoji: "😴",
368
+ additionalDetails: JSON.stringify({ exitCode: app.exitCode }),
369
+ },
370
+ "Subprocess output streams ended; waiting for restart or new output",
371
+ )
372
+ await new Promise((resolve) => setTimeout(resolve, 1000))
373
+ continue
374
+ }
375
+
376
+ const chunk = stdoutResult.value ?? stderrResult.value
377
+ const decodedString = chunk ? decoder.decode(chunk) : ""
360
378
  const convertedMessage = convert.toHtml(decodedString)
361
379
  if (convertedMessage !== "") {
362
380
  lastMessage = convertedMessage