Skip to content

Commit

Permalink
feat: added Segment track for CLI scripts (#2617)
Browse files Browse the repository at this point in the history
* feat: added Segment track for CLI scripts

* refactor: refactoring after review

* refactor: refactoring after review

* refactor: refactoring after review

* refactor: code refactoring
  • Loading branch information
PKulkoRaccoonGang committed Aug 1, 2024
1 parent 084e0c0 commit 46a3de8
Show file tree
Hide file tree
Showing 8 changed files with 783 additions and 834 deletions.
3 changes: 3 additions & 0 deletions bin/paragon-scripts.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const helpCommand = require('../lib/help');
const buildTokensCommand = require('../lib/build-tokens');
const replaceVariablesCommand = require('../lib/replace-variables');
const buildScssCommand = require('../lib/build-scss');
const { sendTrackInfo } = require('../utils');

const COMMANDS = {
/**
Expand Down Expand Up @@ -181,9 +182,11 @@ const COMMANDS = {

try {
await executor.executor(commandArgs);
sendTrackInfo('openedx.paragon.cli-command.used', { command, status: 'success' });
} catch (error) {
// eslint-disable-next-line no-console
console.error(chalk.red.bold('An error occurred:', error.message));
sendTrackInfo('openedx.paragon.cli-command.used', { command, status: 'error', errorMsg: error.message });
process.exit(1);
}
})();
4 changes: 2 additions & 2 deletions component-generator/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ const path = require('path');
const { COMPONENT_FILES } = require('./constants');
const {
validateComponentName,
sendTrackInfo,
createFile,
addComponentToExports,
addComponentToGit,
} = require('./utils');
const { sendTrackInfo } = require('../utils');

program
.argument('<ComponentName>', 'Component must have a name', validateComponentName)
.action((componentName) => {
// send data to analytics
sendTrackInfo(componentName);
sendTrackInfo('openedx.paragon.functions.track-generate-component.created', { componentName });
const componentDir = path.resolve(__dirname, `../src/${componentName}`);
// create directory for the component files
fs.mkdirSync(componentDir);
Expand Down
21 changes: 0 additions & 21 deletions component-generator/utils.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
const { InvalidOptionArgumentError } = require('commander');
const fs = require('fs');
const path = require('path');
const axios = require('axios');
const { exec } = require('child_process');
require('dotenv').config();

Expand Down Expand Up @@ -32,25 +31,6 @@ function validateComponentName(value) {
return value;
}

/**
* Sends request to the Netlify function to inform about generate-component usage.
* @param {string} componentName - component name
*/
function sendTrackInfo(componentName) {
const { BASE_URL, TRACK_ANONYMOUS_ANALYTICS } = process.env;
if (TRACK_ANONYMOUS_ANALYTICS) {
const url = `${BASE_URL}/.netlify/functions/trackGenerateComponent`;
axios.post(url, { componentName })
.then(result => {
// eslint-disable-next-line no-console
console.log(`Track info is successfully sent (status ${result.status})`);
}).catch(error => {
// eslint-disable-next-line no-console
console.log(`Track info request failed (${error})`);
});
}
}

/**
* Creates a file for the component based on the template.
* Note that 'componentName' string is a reserved placeholder,
Expand Down Expand Up @@ -97,7 +77,6 @@ function addComponentToGit(componentName) {
}

exports.validateComponentName = validateComponentName;
exports.sendTrackInfo = sendTrackInfo;
exports.createFile = createFile;
exports.addComponentToExports = addComponentToExports;
exports.addComponentToGit = addComponentToGit;
Loading

0 comments on commit 46a3de8

Please sign in to comment.