summaryrefslogtreecommitdiff
path: root/index.js
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-06-29 23:14:59 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2012-06-29 23:14:59 +0200
commit7a244dd2af1375af9197188aa84f13bc215b4065 (patch)
treeef58ac0aac597b00a6b1adb7139b320ffee07a00 /index.js
parentb883e87b1e5222388e6562296009a49126d3af3c (diff)
downloadcollection_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.js21
1 files changed, 12 insertions, 9 deletions
diff --git a/index.js b/index.js
index 5705fec..583d5ae 100644
--- a/index.js
+++ b/index.js
@@ -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;