crowdstart.js
Version:
Ecommerce SDK for JavaScript and client for Crowdstart.
68 lines (60 loc) • 1.75 kB
JavaScript
// Generated by CoffeeScript 1.10.0
exports.isFunction = function(fn) {
return typeof fn === 'function';
};
exports.isString = function(s) {
return typeof s === 'string';
};
exports.statusOk = function(res) {
return res.status === 200;
};
exports.statusCreated = function(res) {
return res.status === 201;
};
exports.statusNoContent = function(res) {
return res.status === 204;
};
exports.newError = function(data, res) {
var err, message, ref, ref1, ref2, ref3, ref4;
if (res == null) {
res = {};
}
message = (ref = res != null ? (ref1 = res.data) != null ? (ref2 = ref1.error) != null ? ref2.message : void 0 : void 0 : void 0) != null ? ref : 'Request failed';
err = new Error(message);
err.message = message;
err.req = data;
err.data = res.data;
err.responseText = res.data;
err.status = res.status;
err.type = (ref3 = res.data) != null ? (ref4 = ref3.error) != null ? ref4.type : void 0 : void 0;
return err;
};
exports.updateQuery = function(url, key, value) {
var hash, re, separator;
re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi');
if (re.test(url)) {
if (value != null) {
return url.replace(re, '$1' + key + '=' + value + '$2$3');
} else {
hash = url.split('#');
url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '');
if (hash[1] != null) {
url += '#' + hash[1];
}
return url;
}
} else {
if (value != null) {
separator = url.indexOf('?') !== -1 ? '&' : '?';
hash = url.split('#');
url = hash[0] + separator + key + '=' + value;
if (hash[1] != null) {
url += '#' + hash[1];
}
return url;
} else {
return url;
}
}
};
//# sourceMappingURL=utils.js.map