MCPcopy
hub / github.com/coder/mux / normalizeWorkspaceMetadataHeartbeat

Function normalizeWorkspaceMetadataHeartbeat

src/node/config.ts:100–125  ·  view source on GitHub ↗
(
  heartbeat: Workspace["heartbeat"] | undefined,
  config: ProjectsConfig
)

Source from the content-addressed store, hash-verified

98}
99
100function normalizeWorkspaceMetadataHeartbeat(
101 heartbeat: Workspace["heartbeat"] | undefined,
102 config: ProjectsConfig
103): WorkspaceMetadata["heartbeat"] | undefined {
104 if (!heartbeat) {
105 return undefined;
106 }
107
108 const persisted = heartbeat as Partial<NonNullable<Workspace["heartbeat"]>>;
109 const defaultIntervalMs = isValidHeartbeatIntervalMs(config.heartbeatDefaultIntervalMs)
110 ? config.heartbeatDefaultIntervalMs
111 : HEARTBEAT_DEFAULT_INTERVAL_MS;
112 const message = typeof persisted.message === "string" ? persisted.message : undefined;
113 const contextMode = isWorkspaceHeartbeatContextMode(persisted.contextMode)
114 ? persisted.contextMode
115 : undefined;
116
117 return {
118 enabled: persisted.enabled === true,
119 intervalMs: isValidHeartbeatIntervalMs(persisted.intervalMs)
120 ? persisted.intervalMs
121 : defaultIntervalMs,
122 ...(message != null ? { message } : {}),
123 ...(contextMode != null ? { contextMode } : {}),
124 };
125}
126
127function parseOptionalNonEmptyString(value: unknown): string | undefined {
128 if (typeof value !== "string") {

Callers 1

Calls 2

Tested by

no test coverage detected