fix(code-runtime): track generated runner source
This commit is contained in:
@@ -385,6 +385,7 @@
|
|||||||
},
|
},
|
||||||
"packages/code-runtime/code-runtime-subprocess": {
|
"packages/code-runtime/code-runtime-subprocess": {
|
||||||
"entry": [
|
"entry": [
|
||||||
|
"src/runner.ts",
|
||||||
"tests/**/*.spec.ts",
|
"tests/**/*.spec.ts",
|
||||||
"tests/**/*.e2e.ts"
|
"tests/**/*.e2e.ts"
|
||||||
],
|
],
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -94,6 +94,16 @@ function validWorkerFailure(value: unknown): value is RuntimeFailure {
|
|||||||
&& (value.kind === 'exception' || value.kind === 'invalid-output' || value.kind === 'output-limit')
|
&& (value.kind === 'exception' || value.kind === 'invalid-output' || value.kind === 'output-limit')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doneMessage(
|
||||||
|
message: Record<string, unknown>,
|
||||||
|
acceptsFailure: (value: unknown) => value is RuntimeFailure,
|
||||||
|
): RuntimeMessage | undefined {
|
||||||
|
if (message.error !== undefined) {
|
||||||
|
return acceptsFailure(message.error) ? { type: 'done', error: message.error } : undefined
|
||||||
|
}
|
||||||
|
return { type: 'done', ...message.value === undefined ? {} : { value: transportWireOrNull(message.value) } }
|
||||||
|
}
|
||||||
|
|
||||||
function runtimeBoot(value: unknown): RuntimeBootData | undefined {
|
function runtimeBoot(value: unknown): RuntimeBootData | undefined {
|
||||||
const record = recordOf(value)
|
const record = recordOf(value)
|
||||||
if (record === undefined
|
if (record === undefined
|
||||||
@@ -214,11 +224,8 @@ function runLauncher(): void {
|
|||||||
} else if (message.type === 'output-limit') {
|
} else if (message.type === 'output-limit') {
|
||||||
finish({ type: 'output-limit' })
|
finish({ type: 'output-limit' })
|
||||||
} else if (message.type === 'done') {
|
} else if (message.type === 'done') {
|
||||||
if (message.error !== undefined) {
|
const done = doneMessage(message, validFailure)
|
||||||
if (validFailure(message.error)) finish({ type: 'done', error: message.error })
|
if (done !== undefined) finish(done)
|
||||||
} else {
|
|
||||||
finish({ type: 'done', ...message.value === undefined ? {} : { value: transportWireOrNull(message.value) } })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
current.on('error', (error: Error) => {
|
current.on('error', (error: Error) => {
|
||||||
@@ -348,11 +355,8 @@ function runController(): void {
|
|||||||
} else if (message.type === 'output-limit') {
|
} else if (message.type === 'output-limit') {
|
||||||
finish({ type: 'output-limit' })
|
finish({ type: 'output-limit' })
|
||||||
} else if (message.type === 'done') {
|
} else if (message.type === 'done') {
|
||||||
if (message.error !== undefined) {
|
const done = doneMessage(message, validWorkerFailure)
|
||||||
if (validWorkerFailure(message.error)) finish({ type: 'done', error: message.error })
|
if (done !== undefined) finish(done)
|
||||||
} else {
|
|
||||||
finish({ type: 'done', ...message.value === undefined ? {} : { value: transportWireOrNull(message.value) } })
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
current.on('error', (error: Error) => {
|
current.on('error', (error: Error) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user