From 571e7f3579cb12cd85d874fa9fff2f30aa8c083e Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Thu, 26 Sep 2019 14:03:22 +0200 Subject: [PATCH] Factorize sentry capture code --- packages/strapi-generate-new/lib/create-project.js | 7 ++----- .../lib/create-quickstart-project.js | 8 ++------ packages/strapi-generate-new/lib/index.js | 5 ++--- packages/strapi-generate-new/lib/utils/usage.js | 12 ++++++++++++ 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/strapi-generate-new/lib/create-project.js b/packages/strapi-generate-new/lib/create-project.js index defff49212..c35e39f0b9 100644 --- a/packages/strapi-generate-new/lib/create-project.js +++ b/packages/strapi-generate-new/lib/create-project.js @@ -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( diff --git a/packages/strapi-generate-new/lib/create-quickstart-project.js b/packages/strapi-generate-new/lib/create-quickstart-project.js index 1c49ff39fa..fdd1121e0f 100644 --- a/packages/strapi-generate-new/lib/create-quickstart-project.js +++ b/packages/strapi-generate-new/lib/create-quickstart-project.js @@ -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)); } }; diff --git a/packages/strapi-generate-new/lib/index.js b/packages/strapi-generate-new/lib/index.js index 7d162e12f3..2e63760cc7 100644 --- a/packages/strapi-generate-new/lib/index.js +++ b/packages/strapi-generate-new/lib/index.js @@ -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); }); diff --git a/packages/strapi-generate-new/lib/utils/usage.js b/packages/strapi-generate-new/lib/utils/usage.js index 61abed59c6..451f724de5 100644 --- a/packages/strapi-generate-new/lib/utils/usage.js +++ b/packages/strapi-generate-new/lib/utils/usage.js @@ -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, };