|
2 | 2 | import SdkLogo from '$lib/components/lines-and-dots/sdk-logo.svelte'; |
3 | 3 | import { timestamp } from '$lib/components/timestamp.svelte'; |
4 | 4 | import WorkerStatus from '$lib/components/workers/worker-status.svelte'; |
5 | | - import type { WorkerInfo } from '$lib/types'; |
| 5 | + import type { WorkerHeartbeat, WorkerListInfo } from '$lib/types'; |
6 | 6 | import { formatSDKName } from '$lib/utilities/get-sdk-version'; |
7 | 7 | import { createFilter } from '$lib/utilities/query/to-list-workflow-filters'; |
8 | 8 | import { |
|
14 | 14 | import WorkersTableCell from './workers-table-cell.svelte'; |
15 | 15 |
|
16 | 16 | interface Props { |
17 | | - worker: WorkerInfo; |
| 17 | + worker: WorkerListInfo | WorkerHeartbeat; |
18 | 18 | namespace: string; |
19 | 19 | filterable?: boolean; |
20 | 20 | } |
21 | 21 |
|
22 | 22 | let { worker, namespace, filterable = false }: Props = $props(); |
23 | | - const status = $derived( |
24 | | - toWorkerStatusReadable(worker.workerHeartbeat?.status), |
25 | | - ); |
| 23 | + const status = $derived(toWorkerStatusReadable(worker?.status)); |
26 | 24 | </script> |
27 | 25 |
|
28 | 26 | <tr> |
|
31 | 29 | </td> |
32 | 30 | <WorkersTableCell |
33 | 31 | attribute="WorkerInstanceKey" |
34 | | - value={worker.workerHeartbeat?.workerInstanceKey} |
35 | | - href={worker.workerHeartbeat?.workerInstanceKey |
| 32 | + value={worker?.workerInstanceKey} |
| 33 | + href={worker?.workerInstanceKey |
36 | 34 | ? routeForWorkerInstance({ |
37 | 35 | namespace, |
38 | | - workerInstanceKey: worker.workerHeartbeat.workerInstanceKey, |
| 36 | + workerInstanceKey: worker.workerInstanceKey, |
39 | 37 | }) |
40 | 38 | : undefined} |
41 | 39 | {filterable} |
42 | 40 | /> |
43 | 41 | <WorkersTableCell |
44 | 42 | attribute="DeploymentName" |
45 | | - value={worker.workerHeartbeat?.deploymentVersion?.deploymentName} |
46 | | - href={worker.workerHeartbeat?.deploymentVersion?.deploymentName |
| 43 | + value={worker?.deploymentVersion?.deploymentName} |
| 44 | + href={worker?.deploymentVersion?.deploymentName |
47 | 45 | ? routeForWorkerDeployment({ |
48 | 46 | namespace, |
49 | | - deployment: worker.workerHeartbeat.deploymentVersion.deploymentName, |
| 47 | + deployment: worker.deploymentVersion.deploymentName, |
50 | 48 | }) |
51 | 49 | : undefined} |
52 | 50 | {filterable} |
53 | 51 | /> |
54 | 52 | <!-- TODO: Make Build ID filterable with DT-3745 --> |
55 | 53 | <WorkersTableCell |
56 | 54 | attribute="BuildId" |
57 | | - value={worker.workerHeartbeat?.deploymentVersion?.buildId} |
| 55 | + value={worker?.deploymentVersion?.buildId} |
58 | 56 | /> |
59 | 57 | <WorkersTableCell |
60 | 58 | attribute="TaskQueue" |
61 | | - value={worker.workerHeartbeat?.taskQueue} |
| 59 | + value={worker?.taskQueue} |
62 | 60 | {filterable} |
63 | 61 | /> |
64 | 62 | <WorkersTableCell |
65 | 63 | attribute="WorkerIdentity" |
66 | | - value={worker.workerHeartbeat?.workerIdentity} |
| 64 | + value={worker?.workerIdentity} |
67 | 65 | {filterable} |
68 | 66 | /> |
69 | 67 | <WorkersTableCell |
70 | 68 | attribute="HostName" |
71 | | - value={worker.workerHeartbeat?.hostInfo?.hostName} |
| 69 | + value={'hostName' in worker |
| 70 | + ? worker?.hostName |
| 71 | + : 'hostInfo' in worker |
| 72 | + ? worker?.hostInfo?.hostName |
| 73 | + : ''} |
72 | 74 | {filterable} |
73 | 75 | /> |
74 | 76 | <WorkersTableCell |
75 | 77 | attribute="StartTime" |
76 | | - value={$timestamp(worker.workerHeartbeat?.startTime)} |
| 78 | + value={$timestamp(worker?.startTime)} |
77 | 79 | /> |
78 | 80 | <WorkersTableCell |
79 | 81 | copyable={false} |
80 | 82 | {filterable} |
81 | 83 | filters={[ |
82 | | - ...(worker.workerHeartbeat?.sdkName |
| 84 | + ...(worker?.sdkName |
83 | 85 | ? [ |
84 | 86 | createFilter({ |
85 | 87 | attribute: 'SdkName', |
86 | | - value: worker.workerHeartbeat.sdkName, |
| 88 | + value: worker.sdkName, |
87 | 89 | conditional: '=', |
88 | 90 | }), |
89 | 91 | ] |
90 | 92 | : []), |
91 | | - ...(worker.workerHeartbeat?.sdkVersion |
| 93 | + ...(worker?.sdkVersion |
92 | 94 | ? [ |
93 | 95 | createFilter({ |
94 | 96 | attribute: 'SdkVersion', |
95 | | - value: worker.workerHeartbeat.sdkVersion, |
| 97 | + value: worker.sdkVersion, |
96 | 98 | conditional: '=', |
97 | 99 | }), |
98 | 100 | ] |
99 | 101 | : []), |
100 | 102 | ]} |
101 | 103 | > |
102 | 104 | <SdkLogo |
103 | | - sdk={formatSDKName(worker.workerHeartbeat?.sdkName)} |
104 | | - version={worker.workerHeartbeat?.sdkVersion ?? ''} |
| 105 | + sdk={formatSDKName(worker?.sdkName)} |
| 106 | + version={worker?.sdkVersion ?? ''} |
105 | 107 | /> |
106 | 108 | </WorkersTableCell> |
107 | 109 | </tr> |
0 commit comments