MCPcopy Index your code
hub / github.com/coder/coder / waitBuildToBeFinished

Function waitBuildToBeFinished

site/src/api/queries/templates.ts:324–344  ·  view source on GitHub ↗
(
	version: TemplateVersion,
	onRequest?: (data: TemplateVersion) => void,
)

Source from the content-addressed store, hash-verified

322};
323
324const waitBuildToBeFinished = async (
325 version: TemplateVersion,
326 onRequest?: (data: TemplateVersion) => void,
327) => {
328 let data: TemplateVersion;
329 let jobStatus: ProvisionerJobStatus | undefined;
330 do {
331 // When pending we want to poll more frequently
332 await delay(jobStatus === "pending" ? 250 : 1000);
333 data = await API.getTemplateVersion(version.id);
334 onRequest?.(data);
335 jobStatus = data.job.status;
336
337 if (jobStatus === "succeeded") {
338 return version.id;
339 }
340 } while (jobStatus === "pending" || jobStatus === "running");
341
342 // No longer pending/running, but didn't succeed
343 throw new JobError(data.job, version);
344};
345
346export class JobError extends Error {
347 public job: ProvisionerJob;

Callers 2

createTemplateFnFunction · 0.85

Calls 2

delayFunction · 0.90
getTemplateVersionMethod · 0.80

Tested by

no test coverage detected