Archived
1
0

Remove unused deep merge code

This commit is contained in:
Asher
2020-08-04 15:12:15 -05:00
parent 150d37868a
commit f7790c9719
3 changed files with 4 additions and 59 deletions

View File

@ -1,6 +1,6 @@
import * as fs from "fs-extra"
import * as path from "path"
import { extend, paths } from "./util"
import { paths } from "./util"
import { logger } from "@coder/logger"
import { Route } from "./http"
@ -30,12 +30,12 @@ export class SettingsProvider<T> {
/**
* Write settings combined with current settings. On failure log a warning.
* Settings can be shallow or deep merged.
* Settings will be merged shallowly.
*/
public async write(settings: Partial<T>, shallow = true): Promise<void> {
public async write(settings: Partial<T>): Promise<void> {
try {
const oldSettings = await this.read()
const nextSettings = shallow ? Object.assign({}, oldSettings, settings) : extend(oldSettings, settings)
const nextSettings = { ...oldSettings, ...settings }
await fs.writeFile(this.settingsPath, JSON.stringify(nextSettings, null, 2))
} catch (error) {
logger.warn(error.message)

View File

@ -199,25 +199,6 @@ export const isObject = <T extends object>(obj: T): obj is T => {
return !Array.isArray(obj) && typeof obj === "object" && obj !== null
}
/**
* Extend a with b and return a new object. Properties with objects will be
* recursively merged while all other properties are just overwritten.
*/
export function extend<A, B>(a: A, b: B): A & B
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function extend(...args: any[]): any {
const c = {} as any // eslint-disable-line @typescript-eslint/no-explicit-any
for (const obj of args) {
if (!isObject(obj)) {
continue
}
for (const key in obj) {
c[key] = isObject(obj[key]) ? extend(c[key], obj[key]) : obj[key]
}
}
return c
}
/**
* Taken from vs/base/common/charCode.ts. Copied for now instead of importing so
* we don't have to set up a `vs` alias to be able to import with types (since