crowdstart.js
Version:
Ecommerce SDK for JavaScript and client for Crowdstart.
45 lines (38 loc) • 1.25 kB
text/coffeescript
typeof fn is 'function'
exports.isString = (s) -> typeof s is 'string'
exports.statusOk = (res) -> res.status is 200
exports.statusCreated = (res) -> res.status is 201
exports.statusNoContent = (res) -> res.status is 204
exports.newError = (data, res = {}) ->
message = res?.data?.error?.message ? '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 = res.data?.error?.type
err
exports.updateQuery = (url, key, value) ->
re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi')
if re.test url
if value?
url.replace re, '$1' + key + '=' + value + '$2$3'
else
hash = url.split '#'
url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, '')
url += '#' + hash[1] if hash[1]?
url
else
if value?
separator = if url.indexOf('?') != -1 then '&' else '?'
hash = url.split '#'
url = hash[0] + separator + key + '=' + value
url += '#' + hash[1] if hash[1]?
url
else
url
exports.isFunction = (fn) ->