bugsplat-git / bugsplat-ng Goto Github PK
View Code? Open in Web Editor NEW๐๐ฅ๐ต๏ธ BugSplat error reporting for Angular
Home Page: https://bugsplat-git.github.io/my-angular-crasher/
License: MIT License
๐๐ฅ๐ต๏ธ BugSplat error reporting for Angular
Home Page: https://bugsplat-git.github.io/my-angular-crasher/
License: MIT License
When we grab the call stack here the error message is getting lost in both Safari and Firefox. We should generate the call stack in a way that's compatible with Safari and Firefox.
Should specify logger does not emit by default.
This seems to have broken when we improved the initialization UX. We need to make the dependency optional and not provide it in the module so it can be overridden by the consumer.
Title says it all. Whoops!
We removed setCallback and we need to update the documentation.
Another suggestion from @terodox. We should create a new BugSplat once then hold on to it in a property on the BugSplatErrorHandler class.
Update README to follow new BugSplat conventions as seen here
Feedback from Dave:
@terodox suggested that we split unit and acceptance tests into their own suites. This was originally the goal but at the time we didn't know how to configure karma to do so.
Also include information on how to generate vendor source maps.
@terodox suggested that we have a lot of dev-dependencies that are not necessary and slow down the npm install significantly, and he's absolutely correct.
This explicitly goes against the Angular style-guide best practices and should be corrected.
@terodox suggested that we don't log to the console unless some constructor provided option instructs us to do so. Logging to the constructor has un-intended memory side-effects.
Thankfully the 429 returned by the server breaks this loop, but regardless this is not good!
This will be a breaking change.
Let's add an rxjs operator for uploading error objects!
Not sure what happened here, but we got the following POST
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="appName"
bugsplat-web-app
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="appVersion"
1.7.6
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="database"
BugSplatWebApp
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="callstack"
transform@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:569286
https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:444263
ig@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:452646
https://app.bugsplat.com/v2/15.3c5cb9b805b8657f4a2b.js:1:21118
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441373
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Vm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447844
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441259
Bm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:448181
Lm@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:447579
km@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:441381
detectChanges@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:422646
forEach@[native code]
tick@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:379030
https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:377381
onInvoke@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:368561
run@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:3601
next@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:377363
https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:333941
__tryOrUnsub@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:499735
next@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:498888
_next@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:497924
next@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:497596
next@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:575231
emit@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:333722
Mp@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:369732
onHasTask@https://app.bugsplat.com/v2/main.7c5a6225726d9f01f727.js:1:368700
hasTask@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:9402
_updateTaskCount@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:9656
_updateTaskCount@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:5854
runTask@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:4472
g@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:11350
invokeTask@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:10189
y@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:23611
b@https://app.bugsplat.com/v2/polyfills.0c307bbaf6501dd00d85.js:1:23909
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="appKey"
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="user"
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="email"
[email protected]
------WebKitFormBoundaryb8F55GftGYv8ldPA
Content-Disposition: form-data; name="description"
null
------WebKitFormBoundaryb8F55GftGYv8ldPA--
But the following message appeared in the console but wasn't sent to BugSplat:
Error: InvalidPipeArgument: 'Unable to convert "2019-04-26 02:19:54" into a date' for pipe 't'
If you add an additional file every time handle error is called you will eventually cause the post to be too large and fail
Instead of keeping track of the defaults let's just expose the bugsplat-js setDefault methods to cut down on duplicate logic.
Originally posted by @bobbyg603 in #62 (comment)
Depends on BugSplat-Git/bugsplat-js#42
Here are some things we'd like to improve in the sample:
Welcome to my-angular-crasher! This is a sample application that demonstrates BugSplat error reporting for Angular applications built with JavaScript or TypeScript.
Here are some assets that should help in this endeavor.
Octomore is a BugSplat dev server that is only on part-time. We need to figure out what the CORS issue is on the production server so that we can Fred as the testDatabase in the acceptance tests.
The consumer no longer needs to define providers, let's update the docs to reflect the most recent changes.
It would be nice if we could leverage bugsplat-js for the bulk of sending the crash reports and only use this library as a wrapper that adds angular-specific functionality. By doing this we wouldn't have to fix BugSplat-Git/bugsplat-js#34 in two places.
There is an example in my-angular-4-crasher regarding how to create and attach an image, however we should make a convenient factory method that can create/attach a log file for the consumer.
Related to BugSplat-Git/bugsplat-js#33
@terodox suggested that we should target ES5. This was the original intention but there were several TSC errors related to angular when we did this originally and the only fix we had was to go to ES6. We should revisit this.
We should probably start matching our major versions to the Angular major versions as well...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.