(
versionId: string,
{
onMessage,
onDone,
onError,
after,
}: WatchBuildLogsByTemplateVersionIdOptions,
)
| 256 | }; |
| 257 | |
| 258 | export const watchBuildLogsByTemplateVersionId = ( |
| 259 | versionId: string, |
| 260 | { |
| 261 | onMessage, |
| 262 | onDone, |
| 263 | onError, |
| 264 | after, |
| 265 | }: WatchBuildLogsByTemplateVersionIdOptions, |
| 266 | ) => { |
| 267 | const searchParams = new URLSearchParams({ follow: "true" }); |
| 268 | if (after !== undefined) { |
| 269 | searchParams.append("after", after.toString()); |
| 270 | } |
| 271 | |
| 272 | const socket = createWebSocket( |
| 273 | `/api/v2/templateversions/${versionId}/logs`, |
| 274 | searchParams, |
| 275 | ); |
| 276 | |
| 277 | socket.addEventListener("message", (event) => |
| 278 | onMessage(JSON.parse(event.data) as TypesGen.ProvisionerJobLog), |
| 279 | ); |
| 280 | |
| 281 | socket.addEventListener("error", () => { |
| 282 | onError(new Error("Connection for logs failed.")); |
| 283 | socket.close(); |
| 284 | }); |
| 285 | |
| 286 | socket.addEventListener("close", () => { |
| 287 | // When the socket closes, logs have finished streaming! |
| 288 | onDone?.(); |
| 289 | }); |
| 290 | |
| 291 | return socket; |
| 292 | }; |
| 293 | |
| 294 | export const watchWorkspaceAgentLogs = ( |
| 295 | agentId: string, |
no test coverage detected