diff --git a/apps/remix-ide/src/app/ui/TreeView.js b/apps/remix-ide/src/app/ui/TreeView.js
index 0e020472e7..413f49f667 100644
--- a/apps/remix-ide/src/app/ui/TreeView.js
+++ b/apps/remix-ide/src/app/ui/TreeView.js
@@ -176,7 +176,7 @@ class TreeView {
formatSelfDefault (key, data) {
return yo`
-
+
diff --git a/libs/remix-ui/debugger-ui/.eslintrc b/libs/remix-ui/debugger-ui/.eslintrc
index 73f9b856ee..b8666066e9 100644
--- a/libs/remix-ui/debugger-ui/.eslintrc
+++ b/libs/remix-ui/debugger-ui/.eslintrc
@@ -1,250 +1,18 @@
{
- "rules": {
- "@typescript-eslint/ban-types": "off",
- "no-case-declarations": "off",
- "array-callback-return": "warn",
- "dot-location": ["warn", "property"],
- "eqeqeq": ["warn", "smart"],
- "new-parens": "warn",
- "no-caller": "warn",
- "no-cond-assign": ["warn", "except-parens"],
- "no-const-assign": "warn",
- "no-control-regex": "warn",
- "no-delete-var": "warn",
- "no-dupe-args": "warn",
- "no-dupe-keys": "warn",
- "no-duplicate-case": "warn",
- "no-empty-character-class": "warn",
- "no-empty-pattern": "warn",
- "no-eval": "warn",
- "no-ex-assign": "warn",
- "no-extend-native": "warn",
- "no-extra-bind": "warn",
- "no-extra-label": "warn",
- "no-fallthrough": "warn",
- "no-func-assign": "warn",
- "no-implied-eval": "warn",
- "no-invalid-regexp": "warn",
- "no-iterator": "warn",
- "no-label-var": "warn",
- "no-labels": ["warn", { "allowLoop": true, "allowSwitch": false }],
- "no-lone-blocks": "warn",
- "no-loop-func": "warn",
- "no-mixed-operators": [
- "warn",
- {
- "groups": [
- ["&", "|", "^", "~", "<<", ">>", ">>>"],
- ["==", "!=", "===", "!==", ">", ">=", "<", "<="],
- ["&&", "||"],
- ["in", "instanceof"]
- ],
- "allowSamePrecedence": false
- }
- ],
- "no-multi-str": "warn",
- "no-native-reassign": "warn",
- "no-negated-in-lhs": "warn",
- "no-new-func": "warn",
- "no-new-object": "warn",
- "no-new-symbol": "warn",
- "no-new-wrappers": "warn",
- "no-obj-calls": "warn",
- "no-octal": "warn",
- "no-octal-escape": "warn",
- "no-redeclare": "warn",
- "no-regex-spaces": "warn",
- "no-restricted-syntax": ["warn", "WithStatement"],
- "no-script-url": "warn",
- "no-self-assign": "warn",
- "no-self-compare": "warn",
- "no-sequences": "warn",
- "no-shadow-restricted-names": "warn",
- "no-sparse-arrays": "warn",
- "no-template-curly-in-string": "warn",
- "no-this-before-super": "warn",
- "no-throw-literal": "warn",
- "no-restricted-globals": [
- "error",
- "addEventListener",
- "blur",
- "close",
- "closed",
- "confirm",
- "defaultStatus",
- "defaultstatus",
- "event",
- "external",
- "find",
- "focus",
- "frameElement",
- "frames",
- "history",
- "innerHeight",
- "innerWidth",
- "length",
- "location",
- "locationbar",
- "menubar",
- "moveBy",
- "moveTo",
- "name",
- "onblur",
- "onerror",
- "onfocus",
- "onload",
- "onresize",
- "onunload",
- "open",
- "opener",
- "opera",
- "outerHeight",
- "outerWidth",
- "pageXOffset",
- "pageYOffset",
- "parent",
- "print",
- "removeEventListener",
- "resizeBy",
- "resizeTo",
- "screen",
- "screenLeft",
- "screenTop",
- "screenX",
- "screenY",
- "scroll",
- "scrollbars",
- "scrollBy",
- "scrollTo",
- "scrollX",
- "scrollY",
- "self",
- "status",
- "statusbar",
- "stop",
- "toolbar",
- "top"
- ],
- "no-unexpected-multiline": "warn",
- "no-unreachable": "warn",
- "no-unused-expressions": [
- "error",
- {
- "allowShortCircuit": true,
- "allowTernary": true,
- "allowTaggedTemplates": true
- }
- ],
- "no-unused-labels": "warn",
- "no-useless-computed-key": "warn",
- "no-useless-concat": "warn",
- "no-useless-escape": "warn",
- "no-useless-rename": [
- "warn",
- {
- "ignoreDestructuring": false,
- "ignoreImport": false,
- "ignoreExport": false
- }
- ],
- "no-with": "warn",
- "no-whitespace-before-property": "warn",
- "react-hooks/exhaustive-deps": "warn",
- "require-yield": "warn",
- "rest-spread-spacing": ["warn", "never"],
- "strict": ["warn", "never"],
- "unicode-bom": ["warn", "never"],
- "use-isnan": "warn",
- "valid-typeof": "warn",
- "no-restricted-properties": [
- "error",
- {
- "object": "require",
- "property": "ensure",
- "message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting"
- },
- {
- "object": "System",
- "property": "import",
- "message": "Please use import() instead. More info: https://facebook.github.io/create-react-app/docs/code-splitting"
- }
- ],
- "getter-return": "warn",
- "import/first": "error",
- "import/no-amd": "error",
- "import/no-webpack-loader-syntax": "error",
- "react/forbid-foreign-prop-types": ["warn", { "allowInPropTypes": true }],
- "react/jsx-no-comment-textnodes": "warn",
- "react/jsx-no-duplicate-props": "warn",
- "react/jsx-no-target-blank": "warn",
- "react/jsx-no-undef": "error",
- "react/jsx-pascal-case": ["warn", { "allowAllCaps": true, "ignore": [] }],
- "react/jsx-uses-react": "warn",
- "react/jsx-uses-vars": "warn",
- "react/no-danger-with-children": "warn",
- "react/no-direct-mutation-state": "warn",
- "react/no-is-mounted": "warn",
- "react/no-typos": "error",
- "react/react-in-jsx-scope": "error",
- "react/require-render-return": "error",
- "react/style-prop-object": "warn",
- "react/jsx-no-useless-fragment": "warn",
- "jsx-a11y/accessible-emoji": "warn",
- "jsx-a11y/alt-text": "warn",
- "jsx-a11y/anchor-has-content": "warn",
- "jsx-a11y/anchor-is-valid": [
- "warn",
- { "aspects": ["noHref", "invalidHref"] }
- ],
- "jsx-a11y/aria-activedescendant-has-tabindex": "warn",
- "jsx-a11y/aria-props": "warn",
- "jsx-a11y/aria-proptypes": "warn",
- "jsx-a11y/aria-role": "warn",
- "jsx-a11y/aria-unsupported-elements": "warn",
- "jsx-a11y/heading-has-content": "warn",
- "jsx-a11y/iframe-has-title": "warn",
- "jsx-a11y/img-redundant-alt": "warn",
- "jsx-a11y/no-access-key": "warn",
- "jsx-a11y/no-distracting-elements": "warn",
- "jsx-a11y/no-redundant-roles": "warn",
- "jsx-a11y/role-has-required-aria-props": "warn",
- "jsx-a11y/role-supports-aria-props": "warn",
- "jsx-a11y/scope": "warn",
- "react-hooks/rules-of-hooks": "error",
- "default-case": "off",
- "no-dupe-class-members": "off",
- "no-undef": "off",
- "@typescript-eslint/consistent-type-assertions": "warn",
- "no-array-constructor": "off",
- "@typescript-eslint/no-array-constructor": "warn",
- "@typescript-eslint/no-namespace": "error",
- "no-use-before-define": "off",
- "@typescript-eslint/no-use-before-define": [
- "warn",
- {
- "functions": false,
- "classes": false,
- "variables": false,
- "typedefs": false
- }
- ],
- "no-unused-vars": "off",
- "@typescript-eslint/no-unused-vars": [
- "warn",
- { "args": "none", "ignoreRestSiblings": true }
- ],
- "no-useless-constructor": "off",
- "@typescript-eslint/no-useless-constructor": "warn"
- },
"env": {
- "browser": true,
- "commonjs": true,
- "es6": true,
- "jest": true,
- "node": true
+ "browser": true,
+ "es6": true
+ },
+ "extends": "../../../.eslintrc",
+ "globals": {
+ "Atomics": "readonly",
+ "SharedArrayBuffer": "readonly"
},
- "settings": { "react": { "version": "detect" } },
- "plugins": ["import", "jsx-a11y", "react", "react-hooks"],
- "extends": ["../../../.eslintrc"],
- "ignorePatterns": ["!**/*"]
-}
+ "parserOptions": {
+ "ecmaVersion": 11,
+ "sourceType": "module"
+ },
+ "rules": {
+ "standard/no-callback-literal": "off"
+ }
+}
diff --git a/libs/remix-ui/debugger-ui/jest.config.js b/libs/remix-ui/debugger-ui/jest.config.js
index 7b3def7c76..1505cc5eff 100644
--- a/libs/remix-ui/debugger-ui/jest.config.js
+++ b/libs/remix-ui/debugger-ui/jest.config.js
@@ -9,4 +9,4 @@ module.exports = {
},
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
coverageDirectory: '../../coverage/libs/debugger-ui'
-};
+}
diff --git a/libs/remix-ui/debugger-ui/src/hooks/extract-data.tsx b/libs/remix-ui/debugger-ui/src/hooks/extract-data.tsx
index da28dfb4bb..e60dccd6e7 100644
--- a/libs/remix-ui/debugger-ui/src/hooks/extract-data.tsx
+++ b/libs/remix-ui/debugger-ui/src/hooks/extract-data.tsx
@@ -1,58 +1,58 @@
-import React, { useState, useEffect } from 'react'
-import { ExtractData, ExtractFunc } from '../types'
+import React, { useState, useEffect } from 'react' // eslint-disable-line
+import { ExtractData, ExtractFunc } from '../types' // eslint-disable-line
export const useExtractData = (json, extractFunc?: ExtractFunc): Array<{ key: string, data: ExtractData }> => {
- const [data, setData] = useState([])
-
- useEffect(() => {
- const data: Array<{ key: string, data: ExtractData }> = Object.keys(json).map((innerKey) => {
- if (extractFunc) {
- return {
- key: innerKey,
- data : extractFunc(json[innerKey], json)
- }
- } else {
- return {
- key: innerKey,
- data: extractDataDefault(json[innerKey], json)
- }
- }
- })
-
- setData(data)
-
- return () => {
- setData(null)
+ const [data, setData] = useState([])
+
+ useEffect(() => {
+ const data: Array<{ key: string, data: ExtractData }> = Object.keys(json).map((innerKey) => {
+ if (extractFunc) {
+ return {
+ key: innerKey,
+ data: extractFunc(json[innerKey], json)
}
- }, [json, extractFunc])
-
- const extractDataDefault: ExtractFunc = (item, parent?) => {
- const ret: ExtractData = {}
-
- if (item instanceof Array) {
- ret.children = item.map((item, index) => {
- return {key: index, value: item}
- })
- ret.self = 'Array'
- ret.isNode = true
- ret.isLeaf = false
- } else if (item instanceof Object) {
- ret.children = Object.keys(item).map((key) => {
- return {key: key, value: item[key]}
- })
- ret.self = 'Object'
- ret.isNode = true
- ret.isLeaf = false
- } else {
- ret.self = item
- ret.children = null
- ret.isNode = false
- ret.isLeaf = true
+ } else {
+ return {
+ key: innerKey,
+ data: extractDataDefault(json[innerKey], json)
}
- return ret
+ }
+ })
+
+ setData(data)
+
+ return () => {
+ setData(null)
+ }
+ }, [json, extractFunc])
+
+ const extractDataDefault: ExtractFunc = (item, parent?) => {
+ const ret: ExtractData = {}
+
+ if (item instanceof Array) {
+ ret.children = item.map((item, index) => {
+ return { key: index, value: item }
+ })
+ ret.self = 'Array'
+ ret.isNode = true
+ ret.isLeaf = false
+ } else if (item instanceof Object) {
+ ret.children = Object.keys(item).map((key) => {
+ return { key: key, value: item[key] }
+ })
+ ret.self = 'Object'
+ ret.isNode = true
+ ret.isLeaf = false
+ } else {
+ ret.self = item
+ ret.children = null
+ ret.isNode = false
+ ret.isLeaf = true
}
+ return ret
+ }
- return data
+ return data
}
-export default useExtractData
\ No newline at end of file
+export default useExtractData
diff --git a/libs/remix-ui/debugger-ui/src/lib/button-navigator/button-navigator.tsx b/libs/remix-ui/debugger-ui/src/lib/button-navigator/button-navigator.tsx
index 8e2a893227..55ffc569b4 100644
--- a/libs/remix-ui/debugger-ui/src/lib/button-navigator/button-navigator.tsx
+++ b/libs/remix-ui/debugger-ui/src/lib/button-navigator/button-navigator.tsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react'
+import React, { useState, useEffect } from 'react' // eslint-disable-line
import './button-navigator.css'
export const ButtonNavigation = ({ stepOverBack, stepIntoBack, stepIntoForward, stepOverForward, jumpOut, jumpPreviousBreakpoint, jumpNextBreakpoint, jumpToException, revertedReason, stepState, jumpOutDisabled }) => {
@@ -45,7 +45,7 @@ export const ButtonNavigation = ({ stepOverBack, stepIntoBack, stepIntoForward,
intoForwardDisabled: stepState === 'end',
overForwardDisabled: stepState === 'end',
jumpNextBreakpointDisabled: stepState === 'end',
- jumpOutDisabled: jumpOutDisabled ? jumpOutDisabled : true
+ jumpOutDisabled: jumpOutDisabled || true
}
})
}
@@ -60,7 +60,7 @@ export const ButtonNavigation = ({ stepOverBack, stepIntoBack, stepIntoForward,