import {flow} from 'tsfun'; import {RelationDefinition} from './model/relation-definition'; import {toPair} from '../util/utils'; import {assocReduce} from '../util/assoc-reduce'; /** * @author Daniel de Oliveira */ export type InverseRelationsMap = { [_: string]: // relation name for every defined relation, independent if it has an inverse or not string // inverse relation name, if existent | undefined // for relations without inverse } export function makeInverseRelationsMap(relationDefinitions: Array) { return flow( relationDefinitions, assocReduce( toPair('name', 'inverse'), {}) as any) as InverseRelationsMap; }