diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-06-29 23:14:59 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-06-29 23:14:59 +0200 |
commit | 7a244dd2af1375af9197188aa84f13bc215b4065 (patch) | |
tree | ef58ac0aac597b00a6b1adb7139b320ffee07a00 /index.js | |
parent | b883e87b1e5222388e6562296009a49126d3af3c (diff) | |
download | collection_json.js-7a244dd2af1375af9197188aa84f13bc215b4065.tar.gz collection_json.js-7a244dd2af1375af9197188aa84f13bc215b4065.tar.bz2 collection_json.js-7a244dd2af1375af9197188aa84f13bc215b4065.tar.xz collection_json.js-7a244dd2af1375af9197188aa84f13bc215b4065.zip |
o Remembering that all objects should start with a single 'collection'.
Diffstat (limited to 'index.js')
-rw-r--r-- | index.js | 21 |
1 files changed, 12 insertions, 9 deletions
@@ -4,15 +4,18 @@ 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 || {}; + root = _.isObject(root) ? root : {}; + root.collection = _.isObject(root.collection) ? root.collection : {}; + var c = root.collection; + c.version = _.isString(c.version) ? c.version : "1.0"; + c.items = _.isArray(c.items) ? c.items : []; + c.links = _.isArray(c.links) ? c.links : []; + c.queries = _.isArray(c.queries) ? c.queries : []; + c.templates = _.isArray(c.templates) ? c.templates : []; - collection.mapItemData = function(f) { - return _.map(collection.items, function(item) { + // TODO: make un-enumerable + root.mapItemData = function(f) { + return _.map(this.collection.items, function(item) { // console.log("item", item); var map = _.reduce(item.data, function(map, field) { // console.log("field", field); @@ -24,7 +27,7 @@ function fromObject(root) { }); }; - return collection; + return root; } module.exports.fromObject = fromObject; |