mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-16 09:35:36 -05:00
SQL Operations Studio Public Preview 1 (0.23) release source code
This commit is contained in:
34
src/sql/base/common/objects.ts
Normal file
34
src/sql/base/common/objects.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
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) {
|
||||
fn(destination[key], source[key], overwrite);
|
||||
} else {
|
||||
destination[key] = source[key];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
destination[key] = source[key];
|
||||
}
|
||||
});
|
||||
}
|
||||
return destination;
|
||||
}
|
||||
Reference in New Issue
Block a user