git-history-changelog
Version:
changelog builder framework from git history
54 lines (53 loc) • 1.06 kB
TypeScript
export declare type GroupByKeysIn<T> = {
[keyName: string]: T;
};
export declare type GroupByKeysOut<T> = {
[keyName: string]: T[];
};
/**
* group item's values by it's key
* eg:
* ```js
* const from = [
* { a: 1, b: [ 'z' ] },
* { a: 2, b: [ 'z' ] },
* { a: [ 3, 4 ] }
* ]
* to = groupByKeys(from);
* to === {
* a: [ 1, 2, 3, 4],
* b: [ 'z', 'z' ]
* }
* ```
*/
export declare function groupByKeys<T = string>(items: GroupByKeysIn<T>[]): GroupByKeysOut<T>;
/**
* ```js
* {
* x: [
* { a: 1, b: 2 },
* { a: 3, b: 4 }
* ],
* y: [
* { a: 5, b: 6 },
* { a: 7, b: 8 }
* ]
* }
* // to
* {
* x: {
* a: [ 1, 3 ],
* b: [ 2 , 4 ]
* }
* y: {
* a: [ 5, 7 ],
* b: [ 6 , 8 ]
* }
* }
* ```
*/
export declare function groupEveryKeyByKeys<T = string>(item: {
[key: string]: GroupByKeysIn<T>[];
}): {
[key: string]: GroupByKeysOut<T>;
};