Factorize sentry capture code

This commit is contained in:
Alexandre Bodin 2019-09-26 14:03:22 +02:00
parent 67e60369df
commit 571e7f3579
4 changed files with 18 additions and 14 deletions

View File

@ -1,7 +1,5 @@
'use strict';
const sentry = require('@sentry/node');
const { join } = require('path');
const fse = require('fs-extra');
const chalk = require('chalk');
@ -9,7 +7,7 @@ const execa = require('execa');
const ora = require('ora');
const stopProcess = require('./utils/stop-process');
const { trackUsage } = require('./utils/usage');
const { trackUsage, captureError } = require('./utils/usage');
const packageJSON = require('./resources/json/package.json');
const databaseJSON = require('./resources/json/database.json.js');
@ -102,8 +100,7 @@ module.exports = async function createProject(
error: error.stderr.slice(-1024),
});
sentry.captureException(error);
await sentry.flush();
await captureError(error);
stopProcess(
`${chalk.red(

View File

@ -1,9 +1,8 @@
'use strict';
const sentry = require('@sentry/node');
const execa = require('execa');
const { trackUsage } = require('./utils/usage');
const { trackUsage, captureError } = require('./utils/usage');
const defaultConfigs = require('./utils/db-configs.js');
const clientDependencies = require('./utils/db-client-dependencies.js');
const createProject = require('./create-project');
@ -31,9 +30,6 @@ module.exports = async function createQuickStartProject(scope) {
env: {
FORCE_COLOR: 1,
},
}).catch(error => {
sentry.captureException(error);
return sentry.flush();
});
}).catch(error => captureError(error));
}
};

View File

@ -9,7 +9,7 @@ const uuid = require('uuid/v4');
const sentry = require('@sentry/node');
const hasYarn = require('./utils/has-yarn');
const { trackError } = require('./utils/usage');
const { trackError, captureError } = require('./utils/usage');
const parseDatabaseArguments = require('./utils/parse-db-arguments');
const generateNew = require('./generate-new');
@ -78,8 +78,7 @@ module.exports = (projectDirectory, cliArguments) => {
return generateNew(scope).catch(error => {
console.error(error);
sentry.captureException(error);
return sentry.flush().then(() => {
return captureError(error).then(() => {
return trackError({ scope, error }).then(() => {
process.exit(1);
});

View File

@ -2,6 +2,17 @@
const os = require('os');
const fetch = require('node-fetch');
const sentry = require('@sentry/node');
async function captureError(error) {
try {
sentry.captureException(error);
await sentry.flush();
} catch (err) {
/** ignore errors*/
return Promise.resolve();
}
}
function trackEvent(event, body) {
try {
@ -63,4 +74,5 @@ function trackUsage({ event, scope, error }) {
module.exports = {
trackError,
trackUsage,
captureError,
};