UNPKG

git-history-changelog

Version:
54 lines (53 loc) 1.06 kB
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>; };