From 83c66c4124a954e8910b1bd880d2a422e5a75f6f Mon Sep 17 00:00:00 2001 From: Eoghan Murray Date: Tue, 21 Jan 2025 15:49:09 +0000 Subject: [PATCH] Eslint camelCase (#1625) * Add eslint rule to flag up me forgetting to camelCase - I'd say I introduced all the snake_cases that are fixed here * Allow some dubious snake cases for now; we could examine again whether they can be converted to `camelCase['snake_var']` if we need to maintain backwards compatibility of output * add ESLINT_USE_FLAT_CONFIG against eslint v8.57.0 in order to continue using the deprecated .eslintrc.js method --- .changeset/eslint-camelcase-devonly.md | 2 ++ .eslintrc.js | 3 +++ package.json | 4 ++-- packages/rrweb/src/replay/index.ts | 12 ++++++------ 4 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 .changeset/eslint-camelcase-devonly.md diff --git a/.changeset/eslint-camelcase-devonly.md b/.changeset/eslint-camelcase-devonly.md new file mode 100644 index 00000000..a845151c --- /dev/null +++ b/.changeset/eslint-camelcase-devonly.md @@ -0,0 +1,2 @@ +--- +--- diff --git a/.eslintrc.js b/.eslintrc.js index 16d975a6..b2b44dca 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -23,5 +23,8 @@ module.exports = { rules: { 'tsdoc/syntax': 'warn', '@typescript-eslint/prefer-as-const': 'warn', + 'camelcase': ['error', { + allow: ['rr_.*', 'legacy_.*', 'UNSAFE_.*', '__rrweb_.*'], + }], }, }; diff --git a/package.json b/package.json index 4eb8632a..eb6f957b 100644 --- a/package.json +++ b/package.json @@ -53,8 +53,8 @@ "dev": "yarn turbo run dev --concurrency=18", "repl": "cd packages/rrweb && npm run repl", "live-stream": "cd packages/rrweb && yarn live-stream", - "lint": "yarn run concurrently --success=all -r -m=1 'yarn run markdownlint docs' 'yarn eslint packages/*/src --ext .ts,.tsx,.js,.jsx,.svelte'", - "lint:report": "yarn eslint --output-file eslint_report.json --format json packages/*/src --ext .ts,.tsx,.js,.jsx", + "lint": "yarn run concurrently --success=all -r -m=1 'yarn run markdownlint docs' 'ESLINT_USE_FLAT_CONFIG=false yarn eslint packages/*/src --ext .ts,.tsx,.js,.jsx,.svelte'", + "lint:report": "ESLINT_USE_FLAT_CONFIG=false yarn eslint --output-file eslint_report.json --format json packages/*/src --ext .ts,.tsx,.js,.jsx", "release": "yarn build:all && changeset publish" }, "resolutions": { diff --git a/packages/rrweb/src/replay/index.ts b/packages/rrweb/src/replay/index.ts index f1347224..5f1101cc 100644 --- a/packages/rrweb/src/replay/index.ts +++ b/packages/rrweb/src/replay/index.ts @@ -760,13 +760,13 @@ export class Replayer { this.service.send({ type: 'CAST_EVENT', payload: { event } }); // events are kept sorted by timestamp, check if this is the last event - const last_index = this.service.state.context.events.length - 1; + const lastIndex = this.service.state.context.events.length - 1; if ( !this.config.liveMode && - event === this.service.state.context.events[last_index] + event === this.service.state.context.events[lastIndex] ) { const finish = () => { - if (last_index < this.service.state.context.events.length - 1) { + if (lastIndex < this.service.state.context.events.length - 1) { // more events have been added since the setTimeout return; } @@ -774,16 +774,16 @@ export class Replayer { this.service.send('END'); this.emitter.emit(ReplayerEvents.Finish); }; - let finish_buffer = 50; // allow for checking whether new events aren't just about to be loaded in + let finishBuffer = 50; // allow for checking whether new events aren't just about to be loaded in if ( event.type === EventType.IncrementalSnapshot && event.data.source === IncrementalSource.MouseMove && event.data.positions.length ) { // extend finish event if the last event is a mouse move so that the timer isn't stopped by the service before checking the last event - finish_buffer += Math.max(0, -event.data.positions[0].timeOffset); + finishBuffer += Math.max(0, -event.data.positions[0].timeOffset); } - setTimeout(finish, finish_buffer); + setTimeout(finish, finishBuffer); } this.emitter.emit(ReplayerEvents.EventCast, event);