ng2-pipes
Version:
Useful angular2 pipes
20 lines (16 loc) • 538 B
text/typescript
import {PipeTransform, Pipe} from '@angular/core';
import GeneralHelper from '../helpers/helpers';
({name: 'invertBy'})
export class InvertByPipe implements PipeTransform {
transform(obj: any, cb: Function = null): Object {
if (Array.isArray(obj) || !GeneralHelper.isObject(obj)) {
return obj;
}
return Object.keys(obj).reduce((o, k) => {
const key = cb ? cb(obj[k]) : obj[k];
return Array.isArray(o[key])
? (o[key].push(k), o)
: Object.assign(o, {[key]: [k]});
}, {});
}
}