mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-28 17:23:19 -05:00
* Add support for default permissions on directories (cherry picked from commit 4e81cceba142c6763c3447b4d2965cd75764f8f9) * Remove unneeded import (cherry picked from commit ffe5f357357e75e9290966e89768c699df2e1311) * Add recursive apply and clean up webhdfs (cherry picked from commit ae76df14f99e599df1cdfcc74ee22d3822f11a59) * Final set of changes * Undo changes to azdata/sqlops and few minor fixes * Remove cast to fix build error * Hide defaults checkbox for files and switch checkbox order
37 lines
1.2 KiB
TypeScript
37 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.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
export function equals<T>(one: ReadonlyArray<T>, other: ReadonlyArray<T>, itemEquals: (a: T, b: T) => boolean = (a, b) => a === b): boolean {
|
|
if (one.length !== other.length) {
|
|
return false;
|
|
}
|
|
|
|
for (let i = 0, len = one.length; i < len; i++) {
|
|
if (!itemEquals(one[i], other[i])) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
export function flatten<T>(arr: ReadonlyArray<T>[]): T[] {
|
|
return ([] as T[]).concat.apply([], arr);
|
|
}
|
|
|
|
export function groupBy<T>(data: ReadonlyArray<T>, compare: (a: T, b: T) => number): T[][] {
|
|
const result: T[][] = [];
|
|
let currentGroup: T[] | undefined = undefined;
|
|
for (const element of data.slice(0).sort(compare)) {
|
|
if (!currentGroup || compare(currentGroup[0], element) !== 0) {
|
|
currentGroup = [element];
|
|
result.push(currentGroup);
|
|
} else {
|
|
currentGroup.push(element);
|
|
}
|
|
}
|
|
return result;
|
|
}
|