Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jdurand/frontend_rescue
Provides a backend endpoint for your frontend JavaScript application to send errors to when they’re caught
https://github.com/jdurand/frontend_rescue
Last synced: 1 day ago
JSON representation
Provides a backend endpoint for your frontend JavaScript application to send errors to when they’re caught
- Host: GitHub
- URL: https://github.com/jdurand/frontend_rescue
- Owner: jdurand
- License: mit
- Created: 2015-03-06T20:53:49.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-04-20T22:15:39.000Z (over 9 years ago)
- Last Synced: 2024-08-03T14:09:45.400Z (3 months ago)
- Language: Ruby
- Size: 172 KB
- Stars: 15
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
#### Frontend Rescue
[![Build Status](https://travis-ci.org/jdurand/frontend_rescue.svg)](https://travis-ci.org/jdurand/frontend_rescue)
frontend_rescue provides a backend endpoint as a rack middleware for your frontend JavaScript application to send errors to when they’re caught.
This makes it easier to integrate your frontend stack traces to your backend analytics.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'frontend_rescue'
```And then execute:
$ bundle
Or install it yourself as:
$ gem install frontend_rescue
## Backend Usage
#### Rails
Use the frontend_rescue middleware :
Rails.application.configure do
config.middleware.use FrontendRescue::Middleware
end#### Options
**status_code**
By default, frontend_rescue will respond with a ```500 (Server Error)```.
You can override this value with any HTTP status code you like :
config.middleware.use FrontendRescue::Middleware, status_code: 200
**silent**
By default, frontend_rescue will output the frontend error to the logs.
You can pass in ```silent: true```, frontend errors are not logged. You will likely use this option when passing a block.
**paths**
By default, frontend_rescue will take post requests from ```/frontend-error```. You can override this behavior by passing in an array of ``` paths: ['/client/error'] ```
**exclude_user_agent**
You might want to ignore certain user agents. You can exlude user agents with a Regexp: ```exclude_user_agent: /Googlebot/```.
**&block**
You can pass in a block to frontend_rescue and it will be called and passed a FrontendRescue::Error and a Rack::Request :
config.middleware.use FrontendRescue::Middleware, status_code: 200, silent: true do |error, request|
NewRelic::Agent.notice_error(error)
end#### Sinatra
use FrontendRescue::Middleware
With the options described above.
## Frontend Usage
Ideally you should catch all JavaScript errors and **post** them to your endpoint. Frontend frameworks like ember.js make this easy.
Ember example :
Ember.onerror = function(error) {
Ember.$.ajax('/frontend-error', {
type: 'POST',
data: {
name: 'My App',
user_agent: navigator.userAgent,
message: error.message,
stack: error.stack,
custom_params: {version: '1.0.0'}
}
});
};## Contributing
1. Fork it ( https://github.com/[my-github-username]/frontend_rescue/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request