123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- '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 () {
- const crashDir = this.getCrashesDirectory();
- if (!crashDir) {
- throw new Error('crashReporter has not been started');
- }
- return binding.getUploadedReports(crashDir);
- }
- 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;
|