UNPKG

simple-dynamo

Version:

Abstraction of Amazons Dynamo DB Service. Usage of AWS DynamoDB incredible simple.

142 lines (138 loc) 3.89 kB
// Generated by CoffeeScript 1.10.0 (function() { var _; _ = require("underscore"); module.exports = { params: function(obj, params) { if (_.all(params, function(key, idx) { return obj[key] != null; })) { return true; } else { return false; } }, runSeries: function(fns, callback) { var completed, data, iterate; if (fns.length === 0) { return callback(); } completed = 0; data = []; iterate = function() { return fns[completed](function(results) { data[completed] = results; if (++completed === fns.length) { if (callback) { return callback(data); } } else { return iterate(); } }); }; return iterate(); }, runParallel: function(fns, callback) { var completed, data, iterate, started; if (fns.length === 0) { return callback(); } started = 0; completed = 0; data = []; iterate = function() { fns[started]((function(i) { return function(results) { data[i] = results; if (++completed === fns.length) { if (callback) { callback(data); } } }; })(started)); if (++started !== fns.length) { return iterate(); } }; return iterate(); }, checkArray: function(ar) { if (_.isArray(ar)) { return _.any(ar, _.identity); } else { return _.identity(ar); } }, reduceObj: function(obj, keys) { var key, ret, val; ret = {}; for (key in obj) { val = obj[key]; if (keys.indexOf(key) >= 0) { ret[key] = val; } } return ret; }, extend: function() { var clone, copy, deep, i, isArray, isPlainObject, length, name, options, src, target; target = arguments[0] || {}; i = 1; length = arguments.length; deep = false; if (typeof target === "boolean") { deep = target; target = arguments[1] || {}; i = 2; } if (typeof target !== "object" && !typeof target === "function") { target = {}; } isArray = function(obj) { if (toString.call(copy) === "[object Array]") { return true; } else { return false; } }; isPlainObject = function(obj) { var has_is_property_of_method, has_own_constructor, key, last_key; if (!obj || toString.call(obj) !== "[object Object]" || obj.nodeType || obj.setInterval) { return false; } has_own_constructor = hasOwnProperty.call(obj, "constructor"); has_is_property_of_method = hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf"); if (obj.constructor && !has_own_constructor && !has_is_property_of_method) { return false; } for (key in obj) { last_key = key; } return typeof last_key === "undefined" || hasOwnProperty.call(obj, last_key); }; while (i < length) { if ((options = arguments[i]) !== null) { for (name in options) { src = target[name]; copy = options[name]; if (target === copy) { continue; } if (deep && copy && (isPlainObject(copy) || isArray(copy))) { clone = (src && (isPlainObject(src) || isArray(src)) ? src : (isArray(copy) ? [] : {})); target[name] = utils.extend(deep, clone, copy); } else { if (typeof copy !== "undefined") { target[name] = copy; } } } } i++; } return target; } }; }).call(this);