@typed-assistant/builder 0.0.30 → 0.0.32

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typed-assistant/builder",
3
- "version": "0.0.30",
3
+ "version": "0.0.32",
4
4
  "exports": {
5
5
  "./appProcess": "./src/appProcess.tsx",
6
6
  "./bunInstall": "./src/bunInstall.tsx",
@@ -21,25 +21,34 @@ const cssOutputFile = join(
21
21
  const convert = new Convert()
22
22
  const decoder = new TextDecoder()
23
23
 
24
- const readers = new Map<
25
- ReadableStream<Uint8Array>,
26
- ReadableStreamDefaultReader<Uint8Array>
27
- >()
24
+ const readers = {
25
+ stdout: new Map<
26
+ ReadableStream<Uint8Array>,
27
+ ReadableStreamDefaultReader<Uint8Array>
28
+ >(),
29
+ stderr: new Map<
30
+ ReadableStream<Uint8Array>,
31
+ ReadableStreamDefaultReader<Uint8Array>
32
+ >(),
33
+ }
28
34
 
29
- const getReader = (stream: ReadableStream<Uint8Array>) => {
30
- const cachedReader = readers.get(stream)
35
+ const getReader = (
36
+ type: "stdout" | "stderr",
37
+ stream: ReadableStream<Uint8Array>,
38
+ ) => {
39
+ const cachedReader = readers[type].get(stream)
31
40
  if (!cachedReader) {
32
- readers.forEach((_reader, cachedStream) => {
33
- readers.delete(cachedStream)
41
+ readers[type].forEach((_reader, cachedStream) => {
42
+ readers[type].delete(cachedStream)
34
43
  })
35
44
  }
36
45
  const reader = cachedReader ?? stream.getReader()
37
- readers.set(stream, reader)
46
+ readers[type].set(stream, reader)
38
47
  return reader
39
48
  }
40
49
 
41
- const subscribers = new Map<number, (message: string) => void>()
42
- const logSubscribers = new Map<number, () => void>()
50
+ const subscribers = new Map<string, (message: string) => void>()
51
+ const logSubscribers = new Map<string, () => void>()
43
52
 
44
53
  let lastMessage = ""
45
54
 
@@ -166,11 +175,13 @@ export const startWebappServer = async ({
166
175
  })
167
176
 
168
177
  // eslint-disable-next-line no-constant-condition
169
- const stdoutReader = getReader(getSubprocesses().app.stdout)
170
- const stderrReader = getReader(getSubprocesses().app.stderr)
171
178
  while (true) {
179
+ const stdoutReader = getReader("stdout", getSubprocesses().app.stdout)
180
+ const stderrReader = getReader("stderr", getSubprocesses().app.stderr)
172
181
  const { value } = await stdoutReader.read()
173
- const { value: stderrValue } = await stderrReader.read()
182
+ const { value: stderrValue } = value
183
+ ? { value: undefined }
184
+ : await stderrReader.read()
174
185
 
175
186
  const decodedString = decoder.decode(value ?? stderrValue)
176
187
  const convertedMessage = convert.toHtml(decodedString)
@@ -84,8 +84,8 @@ const Logs = () => {
84
84
  >
85
85
  <pre>
86
86
  <ul>
87
- {logs.map((log) => (
88
- <li key={log.date + log.time + log.message} className="">
87
+ {logs.map((log, index) => (
88
+ <li key={(log.date ?? index) + log.time + log.message} className="">
89
89
  <span className="text-slate-400 mr-2">
90
90
  {dateTimeVisibility === "hidden"
91
91
  ? null