Skip to content

Commit

Permalink
add eslint-plugin-compat and config
Browse files Browse the repository at this point in the history
  • Loading branch information
YunFeng0817 committed Sep 17, 2022
1 parent 4fdb3e7 commit 1a694cf
Show file tree
Hide file tree
Showing 16 changed files with 106 additions and 13 deletions.
3 changes: 2 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ module.exports = {
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:@typescript-eslint/recommended-requiring-type-checking',
'plugin:compat/recommended',
],
parser: '@typescript-eslint/parser',
parserOptions: {
Expand All @@ -17,7 +18,7 @@ module.exports = {
tsconfigRootDir: __dirname,
project: ['./tsconfig.eslint.json', './packages/*/tsconfig.json'],
},
plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc', 'jest'],
plugins: ['@typescript-eslint', 'eslint-plugin-tsdoc', 'jest', 'compat'],
rules: {
'tsdoc/syntax': 'warn',
},
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@typescript-eslint/parser": "^5.25.0",
"concurrently": "^7.1.0",
"eslint": "^8.19.0",
"eslint-plugin-compat": "^4.0.2",
"eslint-plugin-jest": "^26.5.3",
"eslint-plugin-tsdoc": "^0.2.16",
"lerna": "^4.0.0",
Expand Down
5 changes: 4 additions & 1 deletion packages/rrdom-nodejs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,8 @@
"nwsapi": "^2.2.0",
"rrdom": "^0.1.4",
"rrweb-snapshot": "^2.0.0-alpha.1"
}
},
"browserslist": [
"supports es6-class"
]
}
5 changes: 4 additions & 1 deletion packages/rrdom/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,8 @@
},
"dependencies": {
"rrweb-snapshot": "^2.0.0-alpha.1"
}
},
"browserslist": [
"supports es6-class"
]
}
5 changes: 4 additions & 1 deletion packages/rrweb-player/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,8 @@
"bugs": {
"url": "https://github.com/rrweb-io/rrweb/issues"
},
"homepage": "https://github.com/rrweb-io/rrweb#readme"
"homepage": "https://github.com/rrweb-io/rrweb#readme",
"browserslist": [
"supports promises and supports fullscreen"
]
}
1 change: 1 addition & 0 deletions packages/rrweb-player/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ export function exitFullscreen(): Promise<void> {

export function isFullscreen(): boolean {
return (
// eslint-disable-next-line compat/compat
document.fullscreen ||
document.webkitIsFullScreen ||
document.mozFullScreen ||
Expand Down
6 changes: 5 additions & 1 deletion packages/rrweb-snapshot/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,9 @@
"ts-node": "^7.0.1",
"tslib": "^1.9.3",
"typescript": "^4.7.3"
}
},
"browserslist": [
"cover 98%",
"not ie >= 0 and not ie_mob >= 0"
]
}
5 changes: 4 additions & 1 deletion packages/rrweb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,5 +87,8 @@
"mitt": "^3.0.0",
"rrdom": "^0.1.4",
"rrweb-snapshot": "^2.0.0-alpha.1"
}
},
"browserslist": [
"supports mutationobserver and supports es6-class and supports promises"
]
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable */
/// <reference types="node" />
declare module 'simple-peer-light' {
import * as stream from 'stream';
Expand Down
8 changes: 6 additions & 2 deletions packages/rrweb/src/record/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -344,15 +344,19 @@ function record<T = eventWithTime>(
window.pageXOffset !== undefined
? window.pageXOffset
: document?.documentElement.scrollLeft ||
// eslint-disable-next-line compat/compat
document?.body?.parentElement?.scrollLeft ||
document?.body.scrollLeft ||
// eslint-disable-next-line compat/compat
document?.body?.scrollLeft ||
0,
top:
window.pageYOffset !== undefined
? window.pageYOffset
: document?.documentElement.scrollTop ||
// eslint-disable-next-line compat/compat
document?.body?.parentElement?.scrollTop ||
document?.body.scrollTop ||
// eslint-disable-next-line compat/compat
document?.body?.scrollTop ||
0,
},
},
Expand Down
1 change: 0 additions & 1 deletion packages/rrweb/src/record/observers/canvas/2d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ export default function initCanvas2DMutationObserver(
win: IWindow,
blockClass: blockClass,
blockSelector: string | null,
mirror: Mirror,
): listenerHandler {
const handlers: listenerHandler[] = [];
const props2D = Object.getOwnPropertyNames(
Expand Down
1 change: 0 additions & 1 deletion packages/rrweb/src/record/stylesheet-manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import type {
adoptedStyleSheetCallback,
adoptedStyleSheetParam,
mutationCallBack,
styleSheetRuleCallback,
} from '../types';
import { StyleSheetMirror } from '../utils';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ async function getTransparentBlobFor(
): Promise<string> {
const id = `${width}-${height}`;
if (transparentBlobMap.has(id)) return transparentBlobMap.get(id)!;
// offScreenCanvas will significantly increase the requirements for browser compatibility so that I disable this rule here.
// eslint-disable-next-line compat/compat
const offscreen = new OffscreenCanvas(width, height);
offscreen.getContext('2d'); // creates rendering context for `converToBlob`
const blob = await offscreen.convertToBlob(); // takes a while
Expand All @@ -49,6 +51,7 @@ worker.onmessage = async function (e) {

const transparentBase64 = getTransparentBlobFor(width, height);

// eslint-disable-next-line compat/compat
const offscreen = new OffscreenCanvas(width, height);
const ctx = offscreen.getContext('2d')!;

Expand Down
2 changes: 2 additions & 0 deletions packages/rrweb/src/replay/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ export class Replayer {
const defaultConfig: playerConfig = {
speed: 1,
maxSpeed: 360,
// eslint-disable-next-line compat/compat
root: document.body,
loadTimeout: 0,
skipInactive: false,
Expand Down Expand Up @@ -1277,6 +1278,7 @@ export class Replayer {
}
case IncrementalSource.Font: {
try {
// eslint-disable-next-line compat/compat
const fontFace = new FontFace(
d.family,
d.buffer
Expand Down
2 changes: 2 additions & 0 deletions packages/rrweb/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ export function getWindowHeight(): number {
return (
window.innerHeight ||
(document.documentElement && document.documentElement.clientHeight) ||
// eslint-disable-next-line compat/compat
(document.body && document.body.clientHeight)
);
}
Expand All @@ -179,6 +180,7 @@ export function getWindowWidth(): number {
return (
window.innerWidth ||
(document.documentElement && document.documentElement.clientWidth) ||
// eslint-disable-next-line compat/compat
(document.body && document.body.clientWidth)
);
}
Expand Down
70 changes: 67 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1618,6 +1618,16 @@
npmlog "^4.1.2"
write-file-atomic "^3.0.3"

"@mdn/browser-compat-data@^3.3.14":
version "3.3.14"
resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz#b72a37c654e598f9ae6f8335faaee182bebc6b28"
integrity sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==

"@mdn/browser-compat-data@^4.1.5":
version "4.2.1"
resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz#1fead437f3957ceebe2e8c3f46beccdb9bc575b8"
integrity sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==

"@microsoft/tsdoc-config@0.16.1":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.1.tgz#4de11976c1202854c4618f364bf499b4be33e657"
Expand Down Expand Up @@ -2766,6 +2776,13 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=

ast-metadata-inferer@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz#c45d874cbdecabea26dc5de11fc6fa1919807c66"
integrity sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==
dependencies:
"@mdn/browser-compat-data" "^3.3.14"

async-limiter@~1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
Expand Down Expand Up @@ -3052,6 +3069,16 @@ browserslist@^4.16.6:
node-releases "^1.1.77"
picocolors "^0.2.1"

browserslist@^4.16.8:
version "4.21.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
dependencies:
caniuse-lite "^1.0.30001400"
electron-to-chromium "^1.4.251"
node-releases "^2.0.6"
update-browserslist-db "^1.0.9"

browserslist@^4.17.5:
version "4.19.1"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz"
Expand Down Expand Up @@ -3217,7 +3244,7 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"

caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001264, caniuse-lite@^1.0.30001286:
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001264, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001304, caniuse-lite@^1.0.30001400:
version "1.0.30001402"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001402.tgz"
integrity sha512-Mx4MlhXO5NwuvXGgVb+hg65HZ+bhUYsz8QtDGDo2QmaJS2GBX47Xfi2koL86lc8K+l+htXeTEB/Aeqvezoo6Ew==
Expand Down Expand Up @@ -3719,6 +3746,11 @@ core-js@^2.4.0:
resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==

core-js@^3.16.2:
version "3.25.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.1.tgz#5818e09de0db8956e16bf10e2a7141e931b7c69c"
integrity sha512-sr0FY4lnO1hkQ4gLDr24K0DGnweGO1QwSj5BpfQjpSJPdqWalja4cTps29Y/PJVG/P7FYlPDkH3hO+Tr0CvDgQ==

core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
Expand Down Expand Up @@ -4287,6 +4319,11 @@ electron-to-chromium@^1.4.17:
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.37.tgz"
integrity sha512-XIvFB1omSAxYgHYX48sC+HR8i/p7lx7R+0cX9faElg1g++h9IilCrJ12+bQuY+d96Wp7zkBiJwMOv+AhLtLrTg==

electron-to-chromium@^1.4.251:
version "1.4.254"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6"
integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==

emittery@^0.8.1:
version "0.8.1"
resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz"
Expand Down Expand Up @@ -4610,6 +4647,20 @@ eslint-config-google@^0.14.0:
resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a"
integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==

eslint-plugin-compat@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz#b058627a7d25d352adf0ec16dca8fcf92d9c7af7"
integrity sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==
dependencies:
"@mdn/browser-compat-data" "^4.1.5"
ast-metadata-inferer "^0.7.0"
browserslist "^4.16.8"
caniuse-lite "^1.0.30001304"
core-js "^3.16.2"
find-up "^5.0.0"
lodash.memoize "4.1.2"
semver "7.3.5"

eslint-plugin-jest@^26.5.3:
version "26.5.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.5.3.tgz#a3ceeaf4a757878342b8b00eca92379b246e5505"
Expand Down Expand Up @@ -7673,7 +7724,7 @@ lodash.ismatch@^4.4.0:
resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz"
integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=

lodash.memoize@4.x, lodash.memoize@^4.1.2:
lodash.memoize@4.1.2, lodash.memoize@4.x, lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz"
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
Expand Down Expand Up @@ -8266,6 +8317,11 @@ node-releases@^2.0.1:
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz"
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==

node-releases@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==

nopt@^4.0.1:
version "4.0.3"
resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"
Expand Down Expand Up @@ -10113,7 +10169,7 @@ semver-match@0.1.1:
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==

semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
semver@7.3.5, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
version "7.3.5"
resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
Expand Down Expand Up @@ -11297,6 +11353,14 @@ upath@^2.0.1:
resolved "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz"
integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==

update-browserslist-db@^1.0.9:
version "1.0.9"
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18"
integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"

uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
Expand Down

0 comments on commit 1a694cf

Please sign in to comment.