(base: T, additional: Partial<T>)
| 1666 | export function mergeCapabilities(base: ServerCapabilities, additional: Partial<ServerCapabilities>): ServerCapabilities; |
| 1667 | export function mergeCapabilities(base: ClientCapabilities, additional: Partial<ClientCapabilities>): ClientCapabilities; |
| 1668 | export function mergeCapabilities<T extends ServerCapabilities | ClientCapabilities>(base: T, additional: Partial<T>): T { |
| 1669 | const result: T = { ...base }; |
| 1670 | for (const key in additional) { |
| 1671 | const k = key as keyof T; |
| 1672 | const addValue = additional[k]; |
| 1673 | if (addValue === undefined) continue; |
| 1674 | const baseValue = result[k]; |
| 1675 | if (isPlainObject(baseValue) && isPlainObject(addValue)) { |
| 1676 | result[k] = { ...(baseValue as Record<string, unknown>), ...(addValue as Record<string, unknown>) } as T[typeof k]; |
| 1677 | } else { |
| 1678 | result[k] = addValue as T[typeof k]; |
| 1679 | } |
| 1680 | } |
| 1681 | return result; |
| 1682 | } |
no test coverage detected
searching dependent graphs…