MCPcopy Create free account
hub / github.com/REditorSupport/vscode-R / updateGuestRequest

Function updateGuestRequest

src/liveShare/shareSession.ts:84–165  ·  view source on GitHub ↗
(file: string, force: boolean = false)

Source from the content-addressed store, hash-verified

82// as this is handled by the session.ts variant
83// the force parameter is used for ensuring that the 'attach' case is appropriately called on guest join
84export async function updateGuestRequest(file: string, force: boolean = false): Promise<void> {
85 const requestContent: string | undefined = await readContent(file, 'utf8');
86 if (!requestContent) {
87 return;
88 }
89 console.info(`[updateGuestRequest] request: ${requestContent}`);
90 if (typeof (requestContent) !== 'string') {
91 return;
92 }
93
94 const request: IRequest = JSON.parse(requestContent) as IRequest;
95 if (!request) {
96 return;
97 }
98
99 if (force) {
100 // The last request is not necessarily an attach request.
101 guestPid = String(request.pid);
102 console.info(`[updateGuestRequest] attach PID: ${guestPid}`);
103 sessionStatusBarItem.text = `Guest R: ${guestPid}`;
104 sessionStatusBarItem.tooltip = 'Click to attach to host terminal.';
105 sessionStatusBarItem.show();
106 }
107
108 if (request.uuid === null || request.uuid === undefined || request.uuid === UUID) {
109 switch (request.command) {
110 case 'help': {
111 if (globalRHelp) {
112 console.log(request.requestPath);
113 if (request.requestPath) {
114 await globalRHelp.showHelpForPath(request.requestPath, request.viewer);
115 }
116 }
117 break;
118 }
119 case 'httpgd': {
120 if (request.url) {
121 await globalHttpgdManager?.showViewer(request.url);
122 }
123 break;
124 }
125 case 'attach': {
126 guestPid = String(request.pid);
127 rVer = String(request.version);
128 info = request.info;
129 console.info(`[updateGuestRequest] attach PID: ${guestPid}`);
130 sessionStatusBarItem.text = `Guest R ${rVer}: ${guestPid}`;
131 // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
132 sessionStatusBarItem.tooltip = `${info?.version || 'unknown version'}\nProcess ID: ${guestPid}\nCommand: ${info?.command}\nStart time: ${info?.start_time}\nClick to attach to host terminal.`;
133 sessionStatusBarItem.show();
134 break;
135 }
136 case 'browser': {
137 if (request.url && request.title && request.viewer !== undefined) {
138 await showBrowser(request.url, request.title, request.viewer);
139 }
140 break;
141 }

Callers 1

shareCommands.tsFile · 0.90

Calls 7

readContentFunction · 0.90
showBrowserFunction · 0.90
showWebViewFunction · 0.90
showDataViewFunction · 0.90
showMethod · 0.80
showViewerMethod · 0.80
showHelpForPathMethod · 0.65

Tested by

no test coverage detected