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

Function getWorkspacesForSidebar

vscode/src/extension.ts:758–872  ·  view source on GitHub ↗
(
  context: vscode.ExtensionContext
)

Source from the content-addressed store, hash-verified

756}
757
758async function getWorkspacesForSidebar(
759 context: vscode.ExtensionContext
760): Promise<{ workspaces: WorkspaceWithContext[]; status: UiConnectionStatus }> {
761 assert(context, "getWorkspacesForSidebar requires context");
762
763 const modeSetting: ConnectionMode = getConnectionModeSetting();
764 muxLogDebug("mux: getWorkspacesForSidebar", { modeSetting });
765
766 const tryReadFromFiles = async (): Promise<
767 { workspaces: WorkspaceWithContext[] } | { error: string }
768 > => {
769 try {
770 return { workspaces: await getAllWorkspacesFromFiles() };
771 } catch (error) {
772 return { error: formatError(error) };
773 }
774 };
775
776 if (modeSetting === "file-only") {
777 const fileResult = await tryReadFromFiles();
778 if ("error" in fileResult) {
779 return {
780 workspaces: [],
781 status: {
782 mode: "file",
783 error: `Failed to read mux workspaces from local files. (${fileResult.error})`,
784 },
785 };
786 }
787
788 return { workspaces: fileResult.workspaces, status: { mode: "file" } };
789 }
790
791 const api = await tryGetApiClient(context);
792 if ("failure" in api) {
793 const failure = api.failure;
794
795 if (modeSetting === "server-only") {
796 return {
797 workspaces: [],
798 status: {
799 mode: "file",
800 baseUrl: failure.baseUrl,
801 error: `${describeFailure(failure)}. (${failure.error})`,
802 },
803 };
804 }
805
806 const fileResult = await tryReadFromFiles();
807 if ("error" in fileResult) {
808 return {
809 workspaces: [],
810 status: {
811 mode: "file",
812 baseUrl: failure.baseUrl,
813 error: `${describeFailure(failure)}. ${getWarningSuffix(failure)} (${failure.error}). Additionally, reading local workspaces failed. (${fileResult.error})`,
814 },
815 };

Callers 1

refreshWorkspacesMethod · 0.85

Calls 9

getConnectionModeSettingFunction · 0.90
getAllWorkspacesFromApiFunction · 0.90
muxLogDebugFunction · 0.85
tryReadFromFilesFunction · 0.85
tryGetApiClientFunction · 0.85
describeFailureFunction · 0.85
getWarningSuffixFunction · 0.85
formatErrorFunction · 0.70
assertFunction · 0.50

Tested by

no test coverage detected