@@ -93,6 +93,11 @@ extend(Raven.prototype, {
9393 eventId = this . generateEventId ( ) ;
9494 }
9595
96+ var domainContext = domain . active && domain . active . sentryContext || { } ;
97+ kwargs . user = extend ( { } , this . _globalContext . user , domainContext . user , kwargs . user ) ;
98+ kwargs . tags = extend ( { } , this . _globalContext . tags , domainContext . tags , kwargs . tags ) ;
99+ kwargs . extra = extend ( { } , this . _globalContext . extra , domainContext . extra , kwargs . extra ) ;
100+
96101 kwargs . modules = utils . getModules ( ) ;
97102 kwargs . server_name = kwargs . server_name || this . name ;
98103
@@ -101,19 +106,12 @@ extend(Raven.prototype, {
101106 }
102107
103108 kwargs . environment = kwargs . environment || this . environment ;
104- kwargs . extra = extend ( { } , this . _globalContext . extra , kwargs . extra ) ;
105- kwargs . tags = extend ( { } , this . _globalContext . tags , kwargs . tags ) ;
106-
107109 kwargs . logger = kwargs . logger || this . loggerName ;
108110 kwargs . event_id = eventId ;
109111 kwargs . timestamp = new Date ( ) . toISOString ( ) . split ( '.' ) [ 0 ] ;
110112 kwargs . project = this . dsn . project_id ;
111113 kwargs . platform = 'node' ;
112114
113- if ( this . _globalContext . user ) {
114- kwargs . user = this . _globalContext . user || kwargs . user ;
115- }
116-
117115 // Only include release information if it is set
118116 if ( this . release ) {
119117 kwargs . release = this . release ;
@@ -287,28 +285,21 @@ extend(Raven.prototype, {
287285 } ,
288286
289287 setContext : function setContext ( ctx ) {
290- if ( ! domain . active ) {
291- utils . consoleAlert ( 'attempt to setContext outside context scope' ) ;
292- } else {
288+ if ( domain . active ) {
293289 domain . active . sentryContext = ctx ;
290+ } else {
291+ this . _globalContext = ctx ;
294292 }
293+ return this ;
295294 } ,
296295
297- // todo consider this naming; maybe "mergeContext" instead?
298- updateContext : function updateContext ( ctx ) {
299- if ( ! domain . active ) {
300- utils . consoleAlert ( 'attempt to updateContext outside context scope' ) ;
301- } else {
302- domain . active . sentryContext = extend ( { } , domain . active . sentryContext , ctx ) ;
303- }
296+ mergeContext : function mergeContext ( ctx ) {
297+ extend ( this . getContext ( ) , ctx ) ;
298+ return this ;
304299 } ,
305300
306301 getContext : function getContext ( ) {
307- if ( ! domain . active ) {
308- utils . consoleAlert ( 'attempt to getContext outside context scope' ) ;
309- return null ;
310- }
311- return domain . active . sentryContext ;
302+ return domain . active ? domain . active . sentryContext : this . _globalContext ;
312303 } ,
313304
314305 /*
@@ -317,9 +308,8 @@ extend(Raven.prototype, {
317308 * @param {object } user An object representing user data [optional]
318309 * @return {Raven }
319310 */
320- setUserContext : function setUserContext ( user ) {
321- utils . consoleAlert ( 'setUserContext has been deprecated and will be removed in v2.0' ) ;
322- this . _globalContext . user = user ;
311+ setUserContext : function setUserContext ( ) {
312+ utils . consoleAlert ( 'setUserContext has been deprecated and will be removed in v2.0; use setContext instead' ) ;
323313 return this ;
324314 } ,
325315
@@ -329,9 +319,8 @@ extend(Raven.prototype, {
329319 * @param {object } extra An object representing extra data [optional]
330320 * @return {Raven }
331321 */
332- setExtraContext : function setExtraContext ( extra ) {
333- utils . consoleAlert ( 'setExtraContext has been deprecated and will be removed in v2.0' ) ;
334- this . _globalContext . extra = extend ( { } , this . _globalContext . extra , extra ) ;
322+ setExtraContext : function setExtraContext ( ) {
323+ utils . consoleAlert ( 'setExtraContext has been deprecated and will be removed in v2.0; use setContext instead' ) ;
335324 return this ;
336325 } ,
337326
@@ -341,9 +330,8 @@ extend(Raven.prototype, {
341330 * @param {object } tags An object representing tags [optional]
342331 * @return {Raven }
343332 */
344- setTagsContext : function setTagsContext ( tags ) {
345- utils . consoleAlert ( 'setTagsContext has been deprecated and will be removed in v2.0' ) ;
346- this . _globalContext . tags = extend ( { } , this . _globalContext . tags , tags ) ;
333+ setTagsContext : function setTagsContext ( ) {
334+ utils . consoleAlert ( 'setTagsContext has been deprecated and will be removed in v2.0; use setContext instead' ) ;
347335 return this ;
348336 } ,
349337
@@ -398,13 +386,9 @@ extend(Raven.prototype, {
398386 if ( status < 500 ) return next ( err ) ;
399387
400388 var kwargs = parsers . parseRequest ( req ) ;
401- if ( domain . active && domain . active . sentryContext ) {
402- kwargs = extend ( kwargs , domain . active . sentryContext ) ;
403- }
404- return self . captureException ( err , kwargs , function ( sendErr , eventId ) {
405- res . sentry = eventId ;
406- next ( err ) ;
407- } ) ;
389+ var eventId = self . captureException ( err , kwargs ) ;
390+ res . sentry = eventId ;
391+ return next ( err ) ;
408392 } ;
409393 }
410394} ) ;
0 commit comments