12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 'use strict'
- const binding = process.electronBinding('crash_reporter')
- class CrashReporter {
- contructor () {
- this.productName = null
- this.crashesDirectory = null
- }
- init (options) {
- throw new Error('Not implemented')
- }
- start (options) {
- if (options == null) options = {}
- const {
- productName,
- companyName,
- extra = {},
- ignoreSystemCrashHandler = false,
- submitURL,
- uploadToServer = true
- } = options
- if (companyName == null) throw new Error('companyName is a required option to crashReporter.start')
- if (submitURL == null) throw new Error('submitURL is a required option to crashReporter.start')
- const ret = this.init({
- submitURL,
- productName
- })
- this.productName = ret.productName
- this.crashesDirectory = ret.crashesDirectory
- if (extra._productName == null) extra._productName = ret.productName
- if (extra._companyName == null) extra._companyName = companyName
- if (extra._version == null) extra._version = ret.appVersion
- binding.start(ret.productName, companyName, submitURL, ret.crashesDirectory, uploadToServer, ignoreSystemCrashHandler, extra)
- }
- getLastCrashReport () {
- const reports = this.getUploadedReports()
- .sort((a, b) => {
- const ats = (a && a.date) ? new Date(a.date).getTime() : 0
- const bts = (b && b.date) ? new Date(b.date).getTime() : 0
- return bts - ats
- })
- return (reports.length > 0) ? reports[0] : null
- }
- getUploadedReports () {
- return binding.getUploadedReports(this.getCrashesDirectory())
- }
- getCrashesDirectory () {
- return this.crashesDirectory
- }
- getProductName () {
- return this.productName
- }
- getUploadToServer () {
- if (process.type === 'browser') {
- return binding.getUploadToServer()
- } else {
- throw new Error('getUploadToServer can only be called from the main process')
- }
- }
- setUploadToServer (uploadToServer) {
- if (process.type === 'browser') {
- return binding.setUploadToServer(uploadToServer)
- } else {
- throw new Error('setUploadToServer can only be called from the main process')
- }
- }
- addExtraParameter (key, value) {
- binding.addExtraParameter(key, value)
- }
- removeExtraParameter (key) {
- binding.removeExtraParameter(key)
- }
- getParameters () {
- return binding.getParameters()
- }
- }
- module.exports = CrashReporter
|