UNPKG

jsonapi-serializer

Version:

A Node.js framework agnostic library for serializing your data to JSON API

32 lines (25 loc) 792 B
'use strict'; var P = require('bluebird'); var _ = require('lodash'); var SerializerUtils = require('./serializer-utils'); function CollectionSerializer(collectionName, records, opts) { var payload = { data: [], included: [] }; function getLinks(links) { return _.mapValues(links, function (value) { if (_.isFunction(value)) { return value(records); } else { return value; } }); } var serializerUtils = new SerializerUtils(collectionName, payload, opts); if (opts.topLevellinks) { payload.links = getLinks(opts.topLevellinks); } records.forEach(function (record) { payload.data.push(serializerUtils.perform(record)); }); return new P(function (resolve) { resolve(payload); }); } module.exports = CollectionSerializer;