File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Angular.js plugin
3
+ *
4
+ * Provides an $exceptionHandler for Angular.js
5
+ */
6
+ ; ( function ( Raven , angular ) {
7
+ 'use strict' ;
8
+
9
+ // quit if angular isn't on the page
10
+ if ( ! angular ) {
11
+ return ;
12
+ }
13
+
14
+ function ngRavenProvider ( $provide ) {
15
+ $provide . decorator ( '$exceptionHandler' , [
16
+ 'RavenConfig, $delegate' ,
17
+ ngRavenExceptionHandler
18
+ ] ) ;
19
+ }
20
+
21
+ function ngRavenExceptionHandler ( RavenConfig , $delegate ) {
22
+ if ( ! RavenConfig )
23
+ throw new Error ( 'RavenConfig must be set before using this' ) ;
24
+
25
+ // Pop off DSN
26
+ var DSN = RavenConfig . DSN ;
27
+ delete RavenConfig . DSN ;
28
+
29
+ Raven . config ( DSN , RavenConfig ) . install ( ) ;
30
+ return function angularExceptionHandler ( ex , cause ) {
31
+ $delegate ( ex , cause ) ;
32
+ Raven . captureException ( ex , { extra : { cause : cause } } ) ;
33
+ } ;
34
+ }
35
+
36
+ angular . module ( 'ngRaven' , [ ] )
37
+ . config ( [ '$provide' , ngRavenProvider ] )
38
+ . value ( 'Raven' , Raven ) ;
39
+
40
+ } ) ( Raven , window . angular ) ;
You can’t perform that action at this time.
0 commit comments