mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 09:59:47 -05:00
* Revert "Revert "Remove typings and replace missing methods with vscodes (#8217)" (#8240)"
This reverts commit e801a04bcf.
* fix runtime error
* add tests for chartview
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as Types from 'vs/base/common/types';
|
|
|
|
/**
|
|
* A copy of the vs mixin that accepts a custom behavior function
|
|
*/
|
|
export function mixin(destination: any, source: any, overwrite: boolean = true, fn?: (destination: any, source: any, overwrite?: boolean) => any): any {
|
|
if (!Types.isObject(destination)) {
|
|
return source;
|
|
}
|
|
|
|
if (Types.isObject(source)) {
|
|
Object.keys(source).forEach((key) => {
|
|
if (key in destination) {
|
|
if (overwrite) {
|
|
if (Types.isObject(destination[key]) && Types.isObject(source[key])) {
|
|
mixin(destination[key], source[key], overwrite, fn);
|
|
} else if (fn) {
|
|
destination[key] = fn(destination[key], source[key], overwrite);
|
|
} else {
|
|
destination[key] = source[key];
|
|
}
|
|
}
|
|
} else {
|
|
destination[key] = source[key];
|
|
}
|
|
});
|
|
}
|
|
return destination;
|
|
}
|