mirror of https://github.com/coder/code-server.git
Set proxy URI to domain proxy when possible (#6115)
This will make the ports panel use it instead of the default path-based proxy.
This commit is contained in:
parent
a44bd71043
commit
c995988b70
|
@ -571,6 +571,9 @@ export async function setDefaults(cliArgs: UserProvidedArgs, configArgs?: Config
|
||||||
// Filter duplicate proxy domains and remove any leading `*.`.
|
// Filter duplicate proxy domains and remove any leading `*.`.
|
||||||
const proxyDomains = new Set((args["proxy-domain"] || []).map((d) => d.replace(/^\*\./, "")))
|
const proxyDomains = new Set((args["proxy-domain"] || []).map((d) => d.replace(/^\*\./, "")))
|
||||||
args["proxy-domain"] = Array.from(proxyDomains)
|
args["proxy-domain"] = Array.from(proxyDomains)
|
||||||
|
if (args["proxy-domain"].length > 0 && !process.env.VSCODE_PROXY_URI) {
|
||||||
|
process.env.VSCODE_PROXY_URI = `{{port}}.${args["proxy-domain"][0]}`
|
||||||
|
}
|
||||||
|
|
||||||
if (typeof args._ === "undefined") {
|
if (typeof args._ === "undefined") {
|
||||||
args._ = []
|
args._ = []
|
||||||
|
|
|
@ -43,6 +43,7 @@ describe("parser", () => {
|
||||||
delete process.env.PASSWORD
|
delete process.env.PASSWORD
|
||||||
delete process.env.CS_DISABLE_FILE_DOWNLOADS
|
delete process.env.CS_DISABLE_FILE_DOWNLOADS
|
||||||
delete process.env.CS_DISABLE_GETTING_STARTED_OVERRIDE
|
delete process.env.CS_DISABLE_GETTING_STARTED_OVERRIDE
|
||||||
|
delete process.env.VSCODE_PROXY_URI
|
||||||
console.log = jest.fn()
|
console.log = jest.fn()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -457,6 +458,31 @@ describe("parser", () => {
|
||||||
port: 8082,
|
port: 8082,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should not set proxy uri", async () => {
|
||||||
|
await setDefaults(parse([]))
|
||||||
|
expect(process.env.VSCODE_PROXY_URI).toBeUndefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should set proxy uri", async () => {
|
||||||
|
await setDefaults(parse(["--proxy-domain", "coder.org"]))
|
||||||
|
expect(process.env.VSCODE_PROXY_URI).toEqual("{{port}}.coder.org")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should set proxy uri to first domain", async () => {
|
||||||
|
await setDefaults(
|
||||||
|
parse(["--proxy-domain", "*.coder.com", "--proxy-domain", "coder.com", "--proxy-domain", "coder.org"]),
|
||||||
|
)
|
||||||
|
expect(process.env.VSCODE_PROXY_URI).toEqual("{{port}}.coder.com")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should not override existing proxy uri", async () => {
|
||||||
|
process.env.VSCODE_PROXY_URI = "foo"
|
||||||
|
await setDefaults(
|
||||||
|
parse(["--proxy-domain", "*.coder.com", "--proxy-domain", "coder.com", "--proxy-domain", "coder.org"]),
|
||||||
|
)
|
||||||
|
expect(process.env.VSCODE_PROXY_URI).toEqual("foo")
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe("cli", () => {
|
describe("cli", () => {
|
||||||
|
|
Loading…
Reference in New Issue