mirror of
https://github.com/cypress-io/cypress.git
synced 2026-05-24 09:29:35 -05:00
61 lines
1.3 KiB
CoffeeScript
61 lines
1.3 KiB
CoffeeScript
Promise = require("bluebird")
|
|
winston = require("winston")
|
|
fs = require("fs-extra")
|
|
api = require("./api")
|
|
user = require("./user")
|
|
cache = require("./cache")
|
|
logger = require("./logger")
|
|
Settings = require("./util/settings")
|
|
|
|
## POST https://api.cypress.io/exceptions
|
|
## sets request body
|
|
## error: {}
|
|
## logs: {}
|
|
## cache: {}
|
|
## settings: {}
|
|
## version: {}
|
|
|
|
module.exports = {
|
|
getCache: ->
|
|
cache.read()
|
|
|
|
getLogs: ->
|
|
logger.getLogs()
|
|
|
|
getErr: (err) ->
|
|
{
|
|
name: err.name
|
|
message: err.message
|
|
stack: err.stack
|
|
info: winston.exception.getAllInfo(err)
|
|
}
|
|
|
|
getVersion: ->
|
|
fs.readJsonAsync("./package.json").get("version")
|
|
|
|
getBody: (err, settings) ->
|
|
body = {err: @getErr(err)}
|
|
|
|
Promise.all([@getCache(), @getLogs(), @getVersion()])
|
|
.spread (cache, logs, version) ->
|
|
body.cache = cache
|
|
body.logs = logs
|
|
body.settings = settings
|
|
body.version = version
|
|
.return(body)
|
|
|
|
getAuthToken: ->
|
|
user.get().then (user) ->
|
|
user and user.authToken
|
|
|
|
create: (err, settings) ->
|
|
return Promise.resolve() if process.env["CYPRESS_ENV"] isnt "production"
|
|
|
|
Promise.props({
|
|
body: @getBody(err, settings)
|
|
authToken: @getAuthToken()
|
|
})
|
|
.then (props) ->
|
|
api.createRaygunException(props.body, props.authToken)
|
|
}
|