bmw-js
Version:
BMW javascript REST client for the BMW i3 hackathon.
64 lines (55 loc) • 1.61 kB
JavaScript
// Generated by CoffeeScript 1.8.0
(function() {
var Http, HttpNodeWrapper, Https, constants;
Http = require('http');
Https = require('https');
constants = require('constants');
module.exports = HttpNodeWrapper = (function() {
function HttpNodeWrapper() {}
HttpNodeWrapper.prototype.request = function(params, callback) {
var action;
if (params.scheme === 'https') {
action = Https.request(params);
} else {
action = Http.request(params);
}
action.on('response', function(response) {
var data;
if (typeof window === "undefined" || window === null) {
response.setEncoding('utf8');
}
data = "";
response.on('data', function(chunk) {
if (chunk) {
return data += chunk;
}
});
return response.on('end', function() {
var error;
if (response.statusCode > 299) {
return callback(response, null);
} else if (data.length > 0) {
try {
return callback(null, JSON.parse(data));
} catch (_error) {
error = _error;
return callback(data, null);
}
} else {
return callback(null, {
result: "ok"
});
}
});
});
action.on('error', function(error) {
return callback(error, null);
});
if ((params.body != null)) {
action.write(params.body);
}
return action.end();
};
return HttpNodeWrapper;
})();
}).call(this);