dormouse
Version:
Javascript API for Dormouse
46 lines (39 loc) • 980 B
JavaScript
var libutils, _,
__hasProp = Object.prototype.hasOwnProperty;
_ = require('underscore');
libutils = exports;
libutils.isEmpty = function(obj) {
var prop;
for (prop in obj) {
if (!__hasProp.call(obj, prop)) continue;
return false;
}
return true;
};
libutils.isArray = function(obj) {
return obj instanceof Array;
};
libutils.toArray = function(array_like) {
return Array.prototype.slice.call(array_like);
};
libutils.formatUrl = function(urlObj) {
var eq, pairs, qs, query, sep, url;
query = urlObj.query || {};
sep = '&';
eq = '=';
pairs = _.map(query, function(value, key) {
return encodeURIComponent(key) + eq + encodeURIComponent(value);
});
qs = pairs.join(sep);
url = urlObj.path || '/';
if (url.match(/#/)) url = url.substr(0, url.indexOf('#'));
if (qs.length > 0) {
if (url.match(/\?/)) {
url += sep + qs;
} else {
url += '?' + qs;
}
}
if (!url.match(/^\//)) url = '/' + url;
return url;
};