* actually using result from deepMerge when updating settings
* replacing merge from lodash with merge from deepmerge

---------

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
This commit is contained in:
Leonardo Salgueiro
2023-08-29 23:15:45 -07:00
committed by GitHub
parent 10caacd830
commit 5e1117ef92
5 changed files with 13 additions and 3 deletions

View File

@@ -18,6 +18,7 @@
"dependencies": {
"csstype": "3.1.0",
"debug": "4.3.4",
"deepmerge": "4.3.1",
"dompurify": "2.3.8",
"eventemitter3": "4.0.7",
"fast-deep-equal": "3.1.3",

View File

@@ -91,7 +91,7 @@ class PluginSettings extends EventEmitter<'change' | 'reset'> {
if (this._settings[k] == v) return
this._settings[k] = v
} else if (isObject(k)) {
deepMerge(this._settings, k)
this._settings = deepMerge(this._settings, k)
} else {
return
}

View File

@@ -534,6 +534,7 @@ export class LSPluginUser
this._connected = true
baseInfo = deepMerge(this._baseInfo, baseInfo)
this._baseInfo = baseInfo
if (baseInfo?.id) {
this._debugTag =

View File

@@ -2,7 +2,7 @@ import { SettingSchemaDesc, StyleString, UIOptions } from './LSPlugin'
import { PluginLocal } from './LSPlugin.core'
import * as nodePath from 'path'
import DOMPurify from 'dompurify'
import { merge } from 'lodash-es'
import merge from 'deepmerge';
import { snakeCase } from 'snake-case'
import * as callables from './callable.apis'
import EventEmitter from 'eventemitter3'
@@ -52,7 +52,10 @@ export function isObject(item: any) {
return item === Object(item) && !Array.isArray(item)
}
export const deepMerge = merge
export function deepMerge<T>(a: Partial<T>, b: Partial<T>): T {
const overwriteArrayMerge = (destinationArray, sourceArray) => sourceArray
return merge(a, b, { arrayMerge: overwriteArrayMerge })
}
export class PluginLogger extends EventEmitter<'change'> {
private _logs: Array<[type: string, payload: any]> = []

View File

@@ -1483,6 +1483,11 @@ debug@4.3.4, debug@^4.1.0, debug@^4.1.1:
dependencies:
ms "2.1.2"
deepmerge@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
dompurify@2.3.8:
version "2.3.8"
resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.8.tgz#224fe9ae57d7ebd9a1ae1ac18c1c1ca3f532226f"