Skip to content

Commit

Permalink
Added a separate 'parsers' library so parsers can be tested independe…
Browse files Browse the repository at this point in the history
…ntly
  • Loading branch information
mattrobenolt committed Mar 18, 2012
1 parent 252dc38 commit 4c79681
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 13 deletions.
18 changes: 5 additions & 13 deletions lib/client.js
@@ -1,4 +1,5 @@
var zlib = require('zlib'),
var parsers = require('./parsers'),
zlib = require('zlib'),
utils = require('./utils'),
parseUrl = require('url').parse,
uuid = require('node-uuid'),
Expand Down Expand Up @@ -94,12 +95,7 @@ _.create_from_text = function createFromText(message, kwargs, callback) {
} else {
kwargs = kwargs || {};
}
kwargs['message'] = message;
kwargs['sentry.interfaces.Message'] = {
message: message,
params: []
};
var result = this.process(kwargs);
var result = this.process(parsers.parseText(message, kwargs));
callback && callback(result);
return result;
};
Expand All @@ -114,12 +110,8 @@ _.create_from_error = function createFromError(err, kwargs, callback) {
} else {
kwargs = kwargs || {};
}
utils.parseStack(err.stack, function(e, frames) {
kwargs['message'] = err.name+': '+err.message;
kwargs['sentry.interfaces.Exception'] = {type:err.name, value:err.message};
kwargs['sentry.interfaces.Stacktrace'] = {frames:frames};
kwargs['culprit'] = err.name + ' in ' + err.stack.split('\n')[1].match(/^.*?\((.*?):\d+:\d+\)$/)[1].replace(process.cwd()+'/', '');
var result = self.process(kwargs);
parsers.parseError(err, kwargs, function(kw) {
var result = self.process(kw);
callback && callback(result);
});
};
Expand Down
21 changes: 21 additions & 0 deletions lib/parsers.js
@@ -0,0 +1,21 @@
var utils = require('./utils');

module.exports.parseText = function parseText(message, kwargs) {
kwargs = kwargs || {};
kwargs['message'] = message;
kwargs['sentry.interfaces.Message'] = {
message: message,
params: []
};
return kwargs;
};

module.exports.parseError = function parseError(err, kwargs, cb) {
utils.parseStack(err.stack, function(e, frames) {
kwargs['message'] = err.name+': '+(err.message || '<no message>');
kwargs['sentry.interfaces.Exception'] = {type:err.name, value:err.message};
kwargs['sentry.interfaces.Stacktrace'] = {frames:frames};
kwargs['culprit'] = (frames[0].filename || 'unknown file').replace(process.cwd()+'/', '')+':'+(frames[0]['function'] || 'unknown function');
cb(kwargs);
});
};

0 comments on commit 4c79681

Please sign in to comment.