PromucFlow_constructor/app/client/src/utils/AppsmithConsole.ts
Rohan Arthur 9d25c3661a
chore: removes unused js events (#31800)
## Description
Tracking of certain user actions tend to pollute our Mixpanel dashboard
instead of providing meaningful insights. The following Mixpanel events
add very little value and hence should be removed immediately:

CONSOLE_LOG_CREATED
AUTO_COMPLETE_SHOW

The issue mentions two more events:
BINDING_SUCCESS - doesn't seem to exist anymore, maybe already removed
JS_VARIABLE_MUTATED - a bit complicated to remove, will do this in a
separate PR


Fixes #31728  


## Automation

/ok-to-test tags="@tag.Sanity, @tag.JS, @tag.Binding"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!IMPORTANT]  
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/8281028348>
> Commit: `4f1502191d03a5476473a1c911e011e3ad8ad1df`
> Cypress dashboard url: <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=8281028348&attempt=1"
target="_blank">Click here!</a>
> All cypress tests have passed 🎉🎉🎉

<!-- end of auto-generated comment: Cypress test results  -->



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Refactor**
- Enhanced privacy by removing specific analytics logging for
user-generated events.
- **Chores**
	- Updated analytics event types by removing unused events.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-03-15 07:40:26 +05:30

116 lines
2.6 KiB
TypeScript

import {
addErrorLogInit,
debuggerLog,
debuggerLogInit,
deleteErrorLogsInit,
} from "actions/debuggerActions";
import type { ReduxAction } from "@appsmith/constants/ReduxActionConstants";
import type { LogActionPayload, Log } from "entities/AppsmithConsole";
import { Severity, LOG_CATEGORY } from "entities/AppsmithConsole";
import moment from "moment";
import store from "store";
import { isEmpty } from "lodash";
// * @param payload - payload of the error
// * @param severity - severity of the error
// * @param category - category of the error
export interface ErrorObject {
payload: LogActionPayload;
severity?: Severity;
category?: LOG_CATEGORY;
}
function dispatchAction(action: ReduxAction<unknown>) {
store.dispatch(action);
}
function log(ev: Log) {
dispatchAction(debuggerLogInit([ev]));
}
function getTimeStamp() {
return moment().format("HH:mm:ss");
}
function addLogs(logs: Log[]) {
dispatchAction(debuggerLog(logs));
}
function info(
ev: LogActionPayload,
timestamp = getTimeStamp(),
category = LOG_CATEGORY.PLATFORM_GENERATED,
) {
log({
...ev,
severity: Severity.INFO,
timestamp,
category,
occurrenceCount: 1,
isExpanded: false,
});
}
function warning(
ev: LogActionPayload,
timestamp = getTimeStamp(),
category = LOG_CATEGORY.PLATFORM_GENERATED,
) {
log({
...ev,
severity: Severity.WARNING,
timestamp,
category,
occurrenceCount: 1,
isExpanded: false,
});
}
// This is used to show a log as an error
// NOTE: These logs won't appear in the errors tab
// To add errors to the errors tab use the addError method.
function error(
ev: LogActionPayload,
timestamp = getTimeStamp(),
category = LOG_CATEGORY.PLATFORM_GENERATED,
) {
log({
...ev,
severity: Severity.ERROR,
timestamp,
category,
occurrenceCount: 1,
isExpanded: false,
});
}
// Function used to add errors to the error tab of the debugger
function addErrors(errors: ErrorObject[]) {
if (isEmpty(errors)) return;
const refinedErrors = errors.map((error) => ({
...error.payload,
severity: error.severity ?? Severity.ERROR,
timestamp: Date.now().toString(),
occurrenceCount: 1,
category: error.category ?? LOG_CATEGORY.PLATFORM_GENERATED,
isExpanded: false,
}));
dispatchAction(addErrorLogInit(refinedErrors));
}
// This is used to remove errors from the error tab of the debugger
function deleteErrors(errors: { id: string; analytics?: Log["analytics"] }[]) {
if (isEmpty(errors)) return;
dispatchAction(deleteErrorLogsInit(errors));
}
export default {
addLogs,
info,
warning,
error,
addErrors,
deleteErrors,
};