MCPcopy Create free account
hub / github.com/coder/mux / enrichAndSort

Function enrichAndSort

vscode/src/muxConfig.ts:35–58  ·  view source on GitHub ↗
(
  workspaces: FrontendWorkspaceMetadata[],
  extensionMeta: Map<string, ExtensionMetadata>
)

Source from the content-addressed store, hash-verified

33}
34
35function enrichAndSort(
36 workspaces: FrontendWorkspaceMetadata[],
37 extensionMeta: Map<string, ExtensionMetadata>
38): WorkspaceWithContext[] {
39 const enriched: WorkspaceWithContext[] = workspaces.map((ws) => {
40 return {
41 ...ws,
42 extensionMetadata: extensionMeta.get(ws.id),
43 };
44 });
45
46 // Sort by recency (extension metadata > createdAt > name)
47 const recencyOf = (w: WorkspaceWithContext): number =>
48 w.extensionMetadata?.recency ?? (w.createdAt ? Date.parse(w.createdAt) : 0);
49
50 enriched.sort((a, b) => {
51 const aRecency = recencyOf(a);
52 const bRecency = recencyOf(b);
53 if (aRecency !== bRecency) return bRecency - aRecency;
54 return a.name.localeCompare(b.name);
55 });
56
57 return enriched;
58}
59
60export async function getAllWorkspacesFromFiles(options?: {
61 timeoutMs?: number;

Callers 2

getAllWorkspacesFromApiFunction · 0.85

Calls 2

recencyOfFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected