( req: express.Request, _: express.Response, next: express.NextFunction, )
| 87 | * Ensure the VS Code server is loaded. |
| 88 | */ |
| 89 | export const ensureVSCodeLoaded = async ( |
| 90 | req: express.Request, |
| 91 | _: express.Response, |
| 92 | next: express.NextFunction, |
| 93 | ): Promise<void> => { |
| 94 | if (vscodeServer) { |
| 95 | return next() |
| 96 | } |
| 97 | if (!vscodeServerPromise) { |
| 98 | vscodeServerPromise = loadVSCode(req) |
| 99 | } |
| 100 | try { |
| 101 | vscodeServer = await vscodeServerPromise |
| 102 | } catch (error) { |
| 103 | vscodeServerPromise = undefined // Unset so we can try again. |
| 104 | logError(logger, "CodeServerRouteWrapper", error) |
| 105 | if (isDevMode) { |
| 106 | return next( |
| 107 | new Error( |
| 108 | (error instanceof Error ? error.message : error) + |
| 109 | " (Have you applied the patches? If so, VS Code may still be compiling)", |
| 110 | ), |
| 111 | ) |
| 112 | } |
| 113 | return next(error) |
| 114 | } |
| 115 | return next() |
| 116 | } |
| 117 | |
| 118 | router.get("/", ensureVSCodeLoaded, async (req, res, next) => { |
| 119 | const isAuthenticated = await authenticated(req) |
nothing calls this directly
no test coverage detected