public prompt(severity: Severity, message: string, _buttons: INotificationButton[], _onCancel: () => void): INotificationHandle { switch (severity) { case Severity.Info: logger.info(message); break; case Severity.Warning: logger.warn(message); break; case Severity.Error: logger.error(message); break; } return { close: (): void => undefined, updateMessage: (): void => undefined, updateButtons: (): void => undefined, }; }
req.on("end", () => { const body = data.join(""); fs.writeFileSync(fullPath, body); logger.debug("Wrote resource", field("path", fullPath), field("content-length", body.length)); res.status(200); res.end(); });
eventEmitter!.on(event, (...args: any[]) => { logger.trace(() => [ `${event}`, field("id", message.getId()), field("args", args.map((a) => stringify(a))), ]); cb(...args); });
public start<T>(title: string, task: (progress: IProgress) => Promise<T>): Promise<T> { logger.info(title); return task({ report: (progress): void => { logger.info(`${title} progress: ${progress}`); }, }); }
send: (data): void => { if (ws.readyState !== ws.OPEN) { return; } try { ws.send(data); } catch (error) { logger.error(error.message); } },
emit: (event: string, ...args: any[]): void => { logger.trace(() => [ `emit ${event}`, field("id", message.getId()), field("args", args.map((a) => stringify(a))), ]); const eventMsg = new EvalEventMessage(); eventMsg.setEvent(event); eventMsg.setArgsList(args.map((a) => stringify(a))); eventMsg.setId(message.getId()); const serverMsg = new ServerMessage(); serverMsg.setEvalEvent(eventMsg); connection.send(serverMsg.serializeBinary()); },
actions.MenuRegistry.appendMenuItem = (id: actions.MenuId, item: actions.IMenuItem | actions.ISubmenuItem): IDisposable => { if (actions.isIMenuItem(item)) { switch (item.command.id) { case ToggleDevToolsAction.ID: // There appears to be no way to toggle this programmatically. logger.debug(`Skipping unsupported menu item ${item.command.id}`); return { dispose: (): void => undefined, }; } } return originalAppend(id, item); };
const isAuthed = (req: http.IncomingMessage): boolean => { try { if (!options.password || options.bypassAuth) { return true; } // Try/catch placed here just in case const cookies = parseCookies(req); if (cookies.password && safeCompare(cookies.password, options.password)) { return true; } } catch (ex) { logger.error("Failed to parse cookies", field("error", ex)); } return false; };
const sendException = (error: Error): void => { logger.trace(() => [ "reject", field("id", message.getId()), field("response", stringify(error, true)), ]); const evalFailed = new EvalFailedMessage(); evalFailed.setId(message.getId()); evalFailed.setResponse(stringify(error, true)); const serverMsg = new ServerMessage(); serverMsg.setEvalFailed(evalFailed); connection.send(serverMsg.serializeBinary()); onDispose(); };
const sendResp = (resp: any): void => { logger.trace(() => [ "resolve", field("id", message.getId()), field("response", stringify(resp)), ]); const evalDone = new EvalDoneMessage(); evalDone.setId(message.getId()); evalDone.setResponse(stringify(resp)); const serverMsg = new ServerMessage(); serverMsg.setEvalDone(evalDone); connection.send(serverMsg.serializeBinary()); onDispose(); };