var _ = require('underscore'); /** * Takes any object and make it look like a collection+json object with utility methods. */ function fromObject(root) { root = root || {}; var collection = root.collection || {}; collection.items = collection.items || {}; collection.links = collection.links || {}; collection.queries = collection.queries || {}; collection.templates = collection.templates || {}; collection.mapItemData = function(f) { return _.map(collection.items, function(item) { // console.log("item", item); var map = _.reduce(item.data, function(map, field) { // console.log("field", field); map[field.name] = field.value; return map; }, {}); // console.log("map", map); return f(map); }); }; return collection; } module.exports.fromObject = fromObject; function fromString(s) { var object = {}; try { object = JSON.parse(s); } catch(ex) { } return fromObject(object); } module.exports.fromString = fromString;