Merge pull request #1920 from fxxjdedd/patch-1

feat: persist route query to local
This commit is contained in:
Asher 2020-07-31 11:36:25 -05:00 committed by GitHub
commit cbf7c9556c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 8 deletions

View File

@ -183,11 +183,10 @@ export class VscodeHttpProvider extends HttpProvider {
}), }),
]) ])
if (startPath) {
settings.write({ settings.write({
lastVisited: startPath, lastVisited: startPath || lastVisited, // If startpath is undefined, then fallback to lastVisited
query: route.query,
}) })
}
if (!this.isDev) { if (!this.isDev) {
response.content = response.content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "") response.content = response.content.replace(/<!-- PROD_ONLY/g, "").replace(/END_PROD_ONLY -->/g, "")

View File

@ -2,6 +2,7 @@ import * as fs from "fs-extra"
import * as path from "path" import * as path from "path"
import { extend, paths } from "./util" import { extend, paths } from "./util"
import { logger } from "@coder/logger" import { logger } from "@coder/logger"
import { Route } from "./http"
export type Settings = { [key: string]: Settings | string | boolean | number } export type Settings = { [key: string]: Settings | string | boolean | number }
@ -29,11 +30,13 @@ export class SettingsProvider<T> {
/** /**
* Write settings combined with current settings. On failure log a warning. * Write settings combined with current settings. On failure log a warning.
* Objects will be merged and everything else will be replaced. * Settings can be shallow or deep merged.
*/ */
public async write(settings: Partial<T>): Promise<void> { public async write(settings: Partial<T>, shallow = true): Promise<void> {
try { try {
await fs.writeFile(this.settingsPath, JSON.stringify(extend(await this.read(), settings), null, 2)) const oldSettings = await this.read()
const nextSettings = shallow ? Object.assign({}, oldSettings, settings) : extend(oldSettings, settings)
await fs.writeFile(this.settingsPath, JSON.stringify(nextSettings, null, 2))
} catch (error) { } catch (error) {
logger.warn(error.message) logger.warn(error.message)
} }
@ -55,6 +58,7 @@ export interface CoderSettings extends UpdateSettings {
url: string url: string
workspace: boolean workspace: boolean
} }
query: Route["query"]
} }
/** /**