Expose replaceTemplates to plugins

This is mainly so they can get relative paths in their HTML, in
particular code-server's static base so they can use the favicon and
service worker.
This commit is contained in:
Asher 2021-01-28 14:24:07 -06:00
parent 36aad9bdab
commit 22d194515a
No known key found for this signature in database
GPG Key ID: D63C1EF81242354A
2 changed files with 14 additions and 0 deletions

View File

@ -5,6 +5,7 @@ import * as path from "path"
import * as semver from "semver" import * as semver from "semver"
import * as pluginapi from "../../typings/pluginapi" import * as pluginapi from "../../typings/pluginapi"
import { version } from "./constants" import { version } from "./constants"
import { replaceTemplates } from "./http"
import { proxy } from "./proxy" import { proxy } from "./proxy"
import * as util from "./util" import * as util from "./util"
import { Router as WsRouter, WebsocketRouter, wss } from "./wsRouter" import { Router as WsRouter, WebsocketRouter, wss } from "./wsRouter"
@ -23,6 +24,7 @@ require("module")._load = function (request: string, parent: object, isMain: boo
field, field,
Level, Level,
proxy, proxy,
replaceTemplates,
WsRouter, WsRouter,
wss, wss,
} }

View File

@ -123,8 +123,20 @@ export { express }
*/ */
export { field, Level, Logger } export { field, Level, Logger }
/**
* code-server's proxy server.
*/
export const proxy: ProxyServer export const proxy: ProxyServer
/**
* Replace variables in HTML: TO, BASE, CS_STATIC_BASE, and OPTIONS.
*/
export function replaceTemplates<T extends object>(
req: express.Request,
content: string,
extraOpts?: Omit<T, "base" | "csStaticBase" | "logLevel">,
): string
/** /**
* Your plugin module must have a top level export "plugin" that implements this interface. * Your plugin module must have a top level export "plugin" that implements this interface.
* *