lux-framework
Version:
Build scalable, Node.js-powered REST APIs with almost no code.
34 lines (29 loc) • 737 B
JavaScript
// @flow
import entries from '../../../utils/entries';
// eslint-disable-next-line no-unused-vars
import type { Model } from '../../database';
/**
* @private
*/
export default function resolveRelationships<T: Model>(
model: Class<T>,
relationships: Object = {}
): Object {
return entries(relationships).reduce((obj, [key, value]) => {
let { data = null } = value || {};
if (data) {
const opts = model.relationshipFor(key);
if (opts) {
if (Array.isArray(data)) {
data = data.map(item => Reflect.construct(opts.model, [item]));
} else {
data = Reflect.construct(opts.model, [data]);
}
}
}
return {
...obj,
[key]: data
};
}, {});
}