From 2e7ea4868800a86cd34740aa32d9e5376bff8fb8 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 12:19:59 +0200 Subject: [PATCH 01/15] Call prettier through esbuild --- package.json | 1 + ts/.eslintrc.js | 2 ++ yarn.lock | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/package.json b/package.json index e15003ea326..23cc9e42fc3 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "escodegen": "^2.0.0", "eslint": "^7.24.0", "eslint-plugin-compat": "^3.13.0", + "eslint-plugin-prettier": "^4.2.1", "espree": "^9.0.0", "estraverse": "^5.2.0", "glob": "^7.1.6", diff --git a/ts/.eslintrc.js b/ts/.eslintrc.js index 1b909510744..4a696d5754f 100644 --- a/ts/.eslintrc.js +++ b/ts/.eslintrc.js @@ -3,6 +3,7 @@ module.exports = { parser: "@typescript-eslint/parser", plugins: [ "svelte3", + "prettier", "import", "simple-import-sort", "@typescript-eslint", @@ -20,6 +21,7 @@ module.exports = { "simple-import-sort/exports": "warn", "prefer-const": "warn", "no-nested-ternary": "warn", + "prettier/prettier": "warn", }, overrides: [ { diff --git a/yarn.lock b/yarn.lock index 761bcd74a46..f6daf92eed6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2304,6 +2304,13 @@ eslint-plugin-import@^2.25.4: resolve "^1.20.0" tsconfig-paths "^3.12.0" +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + eslint-plugin-simple-import-sort@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" @@ -2484,6 +2491,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -4142,6 +4154,13 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + prettier-plugin-svelte@2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz#0e845b560b55cd1d951d6c50431b4949f8591746" From fa732ac40a65ead7875aa269c73d98f4192cec21 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 12:53:35 +0200 Subject: [PATCH 02/15] Use eslint-plugin-svelte instead of eslint-plugin-svelte3 --- package.json | 3 +- ts/.eslintrc.js | 22 ++++++++++-- ts/eslint.bzl | 4 ++- ts/licenses.json | 28 +++------------ yarn.lock | 88 +++++++++++++++++++++++++++++++++++++++++++++--- 5 files changed, 111 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index 23cc9e42fc3..42814e6493f 100644 --- a/package.json +++ b/package.json @@ -28,8 +28,10 @@ "diff": "^5.0.0", "escodegen": "^2.0.0", "eslint": "^7.24.0", + "eslint-config-prettier": "^8.5.0", "eslint-plugin-compat": "^3.13.0", "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-svelte": "^2.2.0", "espree": "^9.0.0", "estraverse": "^5.2.0", "glob": "^7.1.6", @@ -70,7 +72,6 @@ "d3": "^7.0.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-simple-import-sort": "^7.0.0", - "eslint-plugin-svelte3": "^3.4.0", "intl-pluralrules": "^1.2.2", "jquery": "^3.5.1", "jquery-ui-dist": "^1.12.1", diff --git a/ts/.eslintrc.js b/ts/.eslintrc.js index 4a696d5754f..0e8a210ae7f 100644 --- a/ts/.eslintrc.js +++ b/ts/.eslintrc.js @@ -1,8 +1,19 @@ module.exports = { - extends: ["eslint:recommended", "plugin:compat/recommended"], + extends: [ + "eslint:recommended", + "plugin:compat/recommended", + "plugin:svelte/base", + "plugin:svelte/recommended", + "plugin:svelte/prettier", + "plugin:prettier/recommended", + ], parser: "@typescript-eslint/parser", + parserOptions: { + // project: "./tsconfig.json", + extraFileExtensions: [".svelte"], + }, plugins: [ - "svelte3", + "svelte", "prettier", "import", "simple-import-sort", @@ -36,10 +47,15 @@ module.exports = { }, { files: "**/*.svelte", - processor: "svelte3/svelte3", + parser: "svelte-eslint-parser", + parserOptions: { + parser: "@typescript-eslint/parser", + }, rules: { "no-redeclare": "off", "no-global-assign": "off", + "no-self-assign": "off", + "svelte/no-at-html-tags": "off", }, }, ], diff --git a/ts/eslint.bzl b/ts/eslint.bzl index 8f075fef3d5..896ee6ef5fe 100644 --- a/ts/eslint.bzl +++ b/ts/eslint.bzl @@ -18,9 +18,11 @@ def eslint_test(name = "eslint", srcs = None, exclude = []): "@ankidesktop//:package.json", "@npm//@typescript-eslint/parser", "@npm//@typescript-eslint/eslint-plugin", - "@npm//eslint-plugin-svelte3", + "@npm//eslint-plugin-svelte", "@npm//eslint-plugin-import", "@npm//eslint-plugin-simple-import-sort", "@npm//eslint-plugin-compat", + "@npm//eslint-plugin-prettier", + "@npm//eslint-config-prettier", ] + srcs, ) diff --git a/ts/licenses.json b/ts/licenses.json index 8871633b952..de43359686e 100644 --- a/ts/licenses.json +++ b/ts/licenses.json @@ -206,12 +206,6 @@ "licenseFile": "node_modules/acorn-jsx/LICENSE" }, "acorn@7.4.1": { - "licenses": "MIT", - "repository": "https://github.com/acornjs/acorn", - "path": "node_modules/@eslint/eslintrc/node_modules/acorn", - "licenseFile": "node_modules/@eslint/eslintrc/node_modules/acorn/LICENSE" - }, - "acorn@8.7.0": { "licenses": "MIT", "repository": "https://github.com/acornjs/acorn", "path": "node_modules/acorn", @@ -823,13 +817,6 @@ "path": "node_modules/eslint-plugin-simple-import-sort", "licenseFile": "node_modules/eslint-plugin-simple-import-sort/LICENSE" }, - "eslint-plugin-svelte3@3.4.1": { - "licenses": "MIT", - "repository": "https://github.com/sveltejs/eslint-plugin-svelte3", - "publisher": "Conduitry", - "path": "node_modules/eslint-plugin-svelte3", - "licenseFile": "node_modules/eslint-plugin-svelte3/LICENSE" - }, "eslint-scope@5.1.1": { "licenses": "BSD-2-Clause", "repository": "https://github.com/eslint/eslint-scope", @@ -840,16 +827,16 @@ "licenses": "MIT", "repository": "https://github.com/mysticatea/eslint-utils", "publisher": "Toru Nagashima", - "path": "node_modules/eslint-utils", - "licenseFile": "node_modules/eslint-utils/LICENSE" + "path": "node_modules/eslint/node_modules/eslint-utils", + "licenseFile": "node_modules/eslint/node_modules/eslint-utils/LICENSE" }, "eslint-visitor-keys@1.3.0": { "licenses": "Apache-2.0", "repository": "https://github.com/eslint/eslint-visitor-keys", "publisher": "Toru Nagashima", "url": "https://github.com/mysticatea", - "path": "node_modules/eslint-utils/node_modules/eslint-visitor-keys", - "licenseFile": "node_modules/eslint-utils/node_modules/eslint-visitor-keys/LICENSE" + "path": "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys", + "licenseFile": "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys/LICENSE" }, "eslint-visitor-keys@2.1.0": { "licenses": "Apache-2.0", @@ -1817,13 +1804,6 @@ "path": "node_modules/supports-preserve-symlinks-flag", "licenseFile": "node_modules/supports-preserve-symlinks-flag/LICENSE" }, - "svelte@3.48.0": { - "licenses": "MIT", - "repository": "https://github.com/sveltejs/svelte", - "publisher": "Rich Harris", - "path": "node_modules/svelte", - "licenseFile": "node_modules/svelte/LICENSE.md" - }, "table@6.8.0": { "licenses": "BSD-3-Clause", "repository": "https://github.com/gajus/table", diff --git a/yarn.lock b/yarn.lock index f6daf92eed6..fe7f320d089 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2255,6 +2255,11 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" +eslint-config-prettier@^8.5.0: + version "8.5.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz#5a81680ec934beca02c7b1a61cf8ca34b66feab1" + integrity sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q== + eslint-import-resolver-node@^0.3.6: version "0.3.6" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" @@ -2316,10 +2321,19 @@ eslint-plugin-simple-import-sort@^7.0.0: resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" integrity sha512-U3vEDB5zhYPNfxT5TYR7u01dboFZp+HNpnGhkDB2g/2E4wZ/g1Q9Ton8UwCLfRV9yAKyYqDh62oHOamvkFxsvw== -eslint-plugin-svelte3@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.4.1.tgz#3618700333c8f8f12e28aec93bf18440d44a61fd" - integrity sha512-7p59WG8qV8L6wLdl4d/c3mdjkgVglQCdv5XOTk/iNPBKXuuV+Q0eFP5Wa6iJd/G2M1qR3BkLPEzaANOqKAZczw== +eslint-plugin-svelte@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-svelte/-/eslint-plugin-svelte-2.2.0.tgz#fe7376245af002681aad38a9ba266391acab6723" + integrity sha512-V7LwA2lEzGqQ1/Cor3uZS/dL3ff6kdHX44TNYViXyHifIEsFiN2TJWdnH+n6NewjCQ93KVI4cWeZI0Pl7ET/hA== + dependencies: + debug "^4.3.1" + eslint-utils "^3.0.0" + known-css-properties "^0.25.0" + postcss "^8.4.5" + postcss-load-config "^3.1.4" + postcss-safe-parser "^6.0.0" + sourcemap-codec "^1.4.8" + svelte-eslint-parser "^0.16.0" eslint-scope@^5.1.1: version "5.1.1" @@ -2329,6 +2343,14 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" +eslint-scope@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" + integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -2353,7 +2375,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.3.0: +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== @@ -3588,6 +3610,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +known-css-properties@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.25.0.tgz#6ebc4d4b412f602e5cfbeb4086bd544e34c0a776" + integrity sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA== + leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -3625,6 +3652,11 @@ license-checker-rseidelsohn@^2.1.1: spdx-satisfies "^5.0.1" treeify "^1.1.0" +lilconfig@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -3839,6 +3871,11 @@ ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4144,6 +4181,28 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +postcss-load-config@^3.1.4: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + +postcss-safe-parser@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" + integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== + +postcss@^8.4.5: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4511,6 +4570,11 @@ sorcery@^0.10.0: sander "^0.5.0" sourcemap-codec "^1.3.0" +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + source-map-support@0.5.9: version "0.5.9" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" @@ -4724,6 +4788,15 @@ svelte-check@^2.2.6: svelte-preprocess "^4.0.0" typescript "*" +svelte-eslint-parser@^0.16.0: + version "0.16.4" + resolved "https://registry.yarnpkg.com/svelte-eslint-parser/-/svelte-eslint-parser-0.16.4.tgz#7bdfdc9de82f89fa5f47fbc909f8cb4ea078ba25" + integrity sha512-hKTQxH0jiFBnvdAaNcYFScxLNqJf9+tzMDr4ojdjfVrc7OORwkK+eMNuyazhCMc2UD7Ikv+3gGrWiaCeYd5dAQ== + dependencies: + eslint-scope "^7.0.0" + eslint-visitor-keys "^3.0.0" + espree "^9.0.0" + svelte-preprocess@^4.0.0, svelte-preprocess@^4.6.9: version "4.10.4" resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.4.tgz#308a410266bfc55b4e608da8d552b63580141260" @@ -5102,6 +5175,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + yargs-parser@^21.0.0: version "21.0.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.0.1.tgz#0267f286c877a4f0f728fceb6f8a3e4cb95c6e35" From da1c7c1900f66df0c6c7b15792952690dc2fef69 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 12:56:42 +0200 Subject: [PATCH 03/15] Remove unneccessary globstar segments --- ts/.eslintrc.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ts/.eslintrc.js b/ts/.eslintrc.js index 0e8a210ae7f..a429350258d 100644 --- a/ts/.eslintrc.js +++ b/ts/.eslintrc.js @@ -36,7 +36,7 @@ module.exports = { }, overrides: [ { - files: "**/*.ts", + files: "*.ts", extends: [ "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", @@ -46,7 +46,7 @@ module.exports = { }, }, { - files: "**/*.svelte", + files: "*.svelte", parser: "svelte-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", From fb82a1f03d37e83007b54ec7ef8015b217407328 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 13:20:45 +0200 Subject: [PATCH 04/15] Move eslintrc.js to root --- ts/.eslintrc.js => .eslintrc.js | 1 + BUILD.bazel | 2 ++ ts/BUILD.bazel | 2 -- ts/eslint.bzl | 4 +--- 4 files changed, 4 insertions(+), 5 deletions(-) rename ts/.eslintrc.js => .eslintrc.js (99%) diff --git a/ts/.eslintrc.js b/.eslintrc.js similarity index 99% rename from ts/.eslintrc.js rename to .eslintrc.js index a429350258d..a9c63b0ed56 100644 --- a/ts/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,5 @@ module.exports = { + root: true, extends: [ "eslint:recommended", "plugin:compat/recommended", diff --git a/BUILD.bazel b/BUILD.bazel index d6dc535baf3..49affd8d646 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -36,4 +36,6 @@ exports_files([ "defs.bzl", "package.json", ".prettierrc", + ".prettierignore", + ".eslintrc.js", ]) diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 9fb25671afa..8aab4cda96c 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -9,11 +9,9 @@ prettier_test() ################# exports_files([ - ".eslintrc.js", "licenses.json", "sql_format.ts", "jest.config.js", - "package.json", "protobuf-no-long.js", "page.html", ]) diff --git a/ts/eslint.bzl b/ts/eslint.bzl index 896ee6ef5fe..5913f113c83 100644 --- a/ts/eslint.bzl +++ b/ts/eslint.bzl @@ -10,11 +10,9 @@ def eslint_test(name = "eslint", srcs = None, exclude = []): name = name, args = [ "--max-warnings=0", - "-c", - "$(location @ankidesktop//ts:.eslintrc.js)", ] + [native.package_name() + "/" + f for f in srcs], data = [ - "@ankidesktop//ts:.eslintrc.js", + "@ankidesktop//:.eslintrc.js", "@ankidesktop//:package.json", "@npm//@typescript-eslint/parser", "@npm//@typescript-eslint/eslint-plugin", From 8d4a864036f4d21d0575ec0cf68c3e079f0c97ff Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 13:26:39 +0200 Subject: [PATCH 05/15] Add prettier-plugin-svelte to eslint config --- ts/eslint.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/ts/eslint.bzl b/ts/eslint.bzl index 5913f113c83..5081f538b32 100644 --- a/ts/eslint.bzl +++ b/ts/eslint.bzl @@ -22,5 +22,6 @@ def eslint_test(name = "eslint", srcs = None, exclude = []): "@npm//eslint-plugin-compat", "@npm//eslint-plugin-prettier", "@npm//eslint-config-prettier", + "@npm//prettier-plugin-svelte", ] + srcs, ) From 9c9413780e213dc84c8f9cc43801d54c11a28880 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 14:14:35 +0200 Subject: [PATCH 06/15] Format ts/editor --- .eslintrc.js | 20 ++++++------------- ts/BUILD.bazel | 1 + ts/editor/BUILD.bazel | 8 ++++---- ts/editor/NoteCreator.svelte | 2 +- ts/editor/NoteEditor.svelte | 4 ++-- ts/editor/editor-toolbar/EditorToolbar.svelte | 4 ++-- ts/editor/editor-toolbar/InlineButtons.svelte | 4 ++-- ts/editor/editor-toolbar/LatexButton.svelte | 10 ++-------- ts/editor/image-overlay/ImageHandle.svelte | 2 +- ts/editor/mathjax-overlay/MathjaxMenu.svelte | 2 +- .../rich-text-input/RichTextStyles.svelte | 6 +++--- ts/editor/surround.ts | 14 +++++++------ ts/eslint.bzl | 14 +++++++++---- 13 files changed, 43 insertions(+), 48 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a9c63b0ed56..3bc2a241d98 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,11 +6,13 @@ module.exports = { "plugin:svelte/base", "plugin:svelte/recommended", "plugin:svelte/prettier", + "plugin:@typescript-eslint/recommended", + "plugin:@typescript-eslint/eslint-recommended", "plugin:prettier/recommended", ], parser: "@typescript-eslint/parser", parserOptions: { - // project: "./tsconfig.json", + project: ["ts/editor/tsconfig.json"], extraFileExtensions: [".svelte"], }, plugins: [ @@ -34,18 +36,9 @@ module.exports = { "prefer-const": "warn", "no-nested-ternary": "warn", "prettier/prettier": "warn", + "@typescript-eslint/no-non-null-assertion": "off", }, overrides: [ - { - files: "*.ts", - extends: [ - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - ], - rules: { - "@typescript-eslint/no-non-null-assertion": "off", - }, - }, { files: "*.svelte", parser: "svelte-eslint-parser", @@ -57,6 +50,8 @@ module.exports = { "no-global-assign": "off", "no-self-assign": "off", "svelte/no-at-html-tags": "off", + /* We would also ideally get rid of this: */ + "@typescript-eslint/no-explicit-any": "off", }, }, ], @@ -66,7 +61,4 @@ module.exports = { globalThis: false, NodeListOf: false, }, - settings: { - "svelte3/typescript": () => require("typescript"), - }, }; diff --git a/ts/BUILD.bazel b/ts/BUILD.bazel index 8aab4cda96c..706d8bcd8de 100644 --- a/ts/BUILD.bazel +++ b/ts/BUILD.bazel @@ -14,6 +14,7 @@ exports_files([ "jest.config.js", "protobuf-no-long.js", "page.html", + "tsconfig.json", ]) # a copy needs to be placed in bazel-bin for libs with diff --git a/ts/editor/BUILD.bazel b/ts/editor/BUILD.bazel index 25cb334b28d..3b3d6ccb5ca 100644 --- a/ts/editor/BUILD.bazel +++ b/ts/editor/BUILD.bazel @@ -21,11 +21,11 @@ compile_sass( _ts_deps = [ "//ts/components", - "//ts/editable:editable_ts", - "//ts/html-filter", - "//ts/lib", "//ts/domlib", + "//ts/lib", "//ts/sveltelib", + "//ts/editable:editable_ts", + "//ts/html-filter", "//ts/tag-editor", "@npm//@fluent", "@npm//@types/codemirror", @@ -93,7 +93,7 @@ esbuild( prettier_test() -eslint_test() +eslint_test(deps = _ts_deps) svelte_check( name = "svelte_check", diff --git a/ts/editor/NoteCreator.svelte b/ts/editor/NoteCreator.svelte index 3ada910862d..43756349556 100644 --- a/ts/editor/NoteCreator.svelte +++ b/ts/editor/NoteCreator.svelte @@ -31,7 +31,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } let deregisterSticky: () => void; - export function activateStickyShortcuts() { + export function activateStickyShortcuts(): void { deregisterSticky = registerShortcut(toggleStickyAll, "Shift+F9"); } diff --git a/ts/editor/NoteEditor.svelte b/ts/editor/NoteEditor.svelte index 8aa9261fbc8..76f02d1c726 100644 --- a/ts/editor/NoteEditor.svelte +++ b/ts/editor/NoteEditor.svelte @@ -163,7 +163,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html cols = cls; } - let hint: string = ""; + let hint = ""; export function setClozeHint(hnt: string): void { hint = hnt; } @@ -194,7 +194,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html fieldSave.fireImmediately(); } - export function saveOnPageHide() { + export function saveOnPageHide(): void { if (document.visibilityState === "hidden") { // will fire on session close and minimize saveFieldNow(); diff --git a/ts/editor/editor-toolbar/EditorToolbar.svelte b/ts/editor/editor-toolbar/EditorToolbar.svelte index e015e2f1571..a498e952307 100644 --- a/ts/editor/editor-toolbar/EditorToolbar.svelte +++ b/ts/editor/editor-toolbar/EditorToolbar.svelte @@ -9,11 +9,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import type { SurroundFormat } from "../../domlib/surround"; import type { DefaultSlotInterface } from "../../sveltelib/dynamic-slotting"; - export function updateActiveButtons(event: Event) { + export function updateActiveButtons(event: Event): void { updateAllState(event); } - export function clearActiveButtons() { + export function clearActiveButtons(): void { resetAllState(false); } diff --git a/ts/editor/editor-toolbar/InlineButtons.svelte b/ts/editor/editor-toolbar/InlineButtons.svelte index ba8625f4bbb..a777974c627 100644 --- a/ts/editor/editor-toolbar/InlineButtons.svelte +++ b/ts/editor/editor-toolbar/InlineButtons.svelte @@ -17,8 +17,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export let api = {}; - let textColor: string = "black"; - let highlightColor: string = "black"; + let textColor = "black"; + let highlightColor = "black"; export function setColorButtons([textClr, highlightClr]: [string, string]): void { textColor = textClr; highlightColor = highlightClr; diff --git a/ts/editor/editor-toolbar/LatexButton.svelte b/ts/editor/editor-toolbar/LatexButton.svelte index ffd535dc1da..fd09f62b8cd 100644 --- a/ts/editor/editor-toolbar/LatexButton.svelte +++ b/ts/editor/editor-toolbar/LatexButton.svelte @@ -70,14 +70,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } - - + + {@html functionIcon} diff --git a/ts/editor/image-overlay/ImageHandle.svelte b/ts/editor/image-overlay/ImageHandle.svelte index 1d412e758c1..82b6248d70f 100644 --- a/ts/editor/image-overlay/ImageHandle.svelte +++ b/ts/editor/image-overlay/ImageHandle.svelte @@ -60,7 +60,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html $: naturalHeight = activeImage?.naturalHeight; $: aspectRatio = naturalWidth && naturalHeight ? naturalWidth / naturalHeight : NaN; - let customDimensions: boolean = false; + let customDimensions = false; let actualWidth = ""; let actualHeight = ""; diff --git a/ts/editor/mathjax-overlay/MathjaxMenu.svelte b/ts/editor/mathjax-overlay/MathjaxMenu.svelte index 2971c45d66d..51204288c17 100644 --- a/ts/editor/mathjax-overlay/MathjaxMenu.svelte +++ b/ts/editor/mathjax-overlay/MathjaxMenu.svelte @@ -26,7 +26,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html export let updateSelection: () => Promise; let dropdownApi: any; - export async function update() { + export async function update(): void { await updateSelection?.(); dropdownApi.update(); } diff --git a/ts/editor/rich-text-input/RichTextStyles.svelte b/ts/editor/rich-text-input/RichTextStyles.svelte index 9679a393975..ec13a2ca598 100644 --- a/ts/editor/rich-text-input/RichTextStyles.svelte +++ b/ts/editor/rich-text-input/RichTextStyles.svelte @@ -8,7 +8,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { directionKey, fontFamilyKey, fontSizeKey } from "../../lib/context-keys"; import { promiseWithResolver } from "../../lib/promise"; - import type { StyleLinkType, StyleObject } from "./CustomStyles.svelte"; + import type { StyleObject } from "./CustomStyles.svelte"; import CustomStyles from "./CustomStyles.svelte"; export let callback: (styles: CustomStyles) => void; @@ -42,9 +42,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const styles = [ { id: "rootStyle", - type: "link" as "link", + type: "link" as const, href: "./_anki/css/editable.css", - } as StyleLinkType, + }, ]; function attachToShadow(element: Element) { diff --git a/ts/editor/surround.ts b/ts/editor/surround.ts index 9044dde3444..1ce4d961e88 100644 --- a/ts/editor/surround.ts +++ b/ts/editor/surround.ts @@ -95,10 +95,12 @@ export class Surrounder { format: SurroundFormat, exclusive: SurroundFormat[] = [], ): void { - if (get(this.trigger!.active)) { - this.trigger!.off(); + if (!this.trigger) { + return; + } else if (get(this.trigger.active)) { + this.trigger.off(); } else { - this.trigger!.on(async ({ text }) => { + this.trigger.on(({ text }) => { const range = new Range(); range.selectNode(text); @@ -116,7 +118,7 @@ export class Surrounder { format: SurroundFormat, exclusive: SurroundFormat[] = [], ): void { - this.trigger!.on(async ({ text }) => { + this.trigger.on(async ({ text }) => { const range = new Range(); range.selectNode(text); @@ -134,7 +136,7 @@ export class Surrounder { remove: SurroundFormat[], reformat: SurroundFormat[] = [], ): void { - this.trigger!.on(async ({ text }) => { + this.trigger.on(async ({ text }) => { const range = new Range(); range.selectNode(text); @@ -215,7 +217,7 @@ export class Surrounder { } const isSurrounded = isSurroundedInner(range, base, boolMatcher(format)); - return get(this.trigger!.active) ? !isSurrounded : isSurrounded; + return get(this.trigger.active) ? !isSurrounded : isSurrounded; } /** diff --git a/ts/eslint.bzl b/ts/eslint.bzl index 5081f538b32..2cd38a3c1d9 100644 --- a/ts/eslint.bzl +++ b/ts/eslint.bzl @@ -1,8 +1,9 @@ load("@npm//eslint:index.bzl", _eslint_test = "eslint_test") -def eslint_test(name = "eslint", srcs = None, exclude = []): +def eslint_test(name = "eslint", srcs = None, deps = [], exclude = []): if not srcs: - srcs = native.glob([ + srcs = srcs or native.glob([ + "**/tsconfig.json", "**/*.ts", "**/*.svelte", ], exclude = exclude) @@ -10,10 +11,15 @@ def eslint_test(name = "eslint", srcs = None, exclude = []): name = name, args = [ "--max-warnings=0", - ] + [native.package_name() + "/" + f for f in srcs], + ] + [ + native.package_name() + "/" + file + for file in srcs + if file.endswith(".ts") or file.endswith(".svelte") + ], data = [ "@ankidesktop//:.eslintrc.js", "@ankidesktop//:package.json", + "@ankidesktop//ts:tsconfig.json", "@npm//@typescript-eslint/parser", "@npm//@typescript-eslint/eslint-plugin", "@npm//eslint-plugin-svelte", @@ -23,5 +29,5 @@ def eslint_test(name = "eslint", srcs = None, exclude = []): "@npm//eslint-plugin-prettier", "@npm//eslint-config-prettier", "@npm//prettier-plugin-svelte", - ] + srcs, + ] + srcs + deps, ) From 5826aeac3ab006d464aca3bd05b64518ea7b9bd9 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 14:20:47 +0200 Subject: [PATCH 07/15] Remove specific mention of editor from /.eslintrc.js --- .eslintrc.js | 1 - ts/.eslintrc.js | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 ts/.eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js index 3bc2a241d98..75013e3a13c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,7 +12,6 @@ module.exports = { ], parser: "@typescript-eslint/parser", parserOptions: { - project: ["ts/editor/tsconfig.json"], extraFileExtensions: [".svelte"], }, plugins: [ diff --git a/ts/.eslintrc.js b/ts/.eslintrc.js new file mode 100644 index 00000000000..765d58452df --- /dev/null +++ b/ts/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + parserOptions: { + /* This will resolve to each source directories' tsconfig, + * e.g. for ts/editor it will resolve to ts/editor/tsconfig.json */ + project: ["./tsconfig.json"], + } +} From 6fdd920b9ba7bc5e642d0e9e738d83516925d8c1 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 14:23:03 +0200 Subject: [PATCH 08/15] Fix editable eslint --- ts/components/Absolute.svelte | 8 ++++---- ts/components/ButtonGroup.svelte | 2 +- ts/components/ButtonToolbar.svelte | 2 +- ts/components/Container.svelte | 2 +- ts/components/DropdownItem.svelte | 2 +- ts/components/DropdownMenu.svelte | 2 +- ts/components/IconConstrain.svelte | 6 +++--- ts/components/LabelButton.svelte | 2 +- ts/components/Row.svelte | 2 +- ts/components/SelectButton.svelte | 1 - ts/components/StickyContainer.svelte | 4 ++-- ts/components/WithContext.svelte | 2 +- ts/components/WithDropdown.svelte | 6 ++++-- ts/components/WithState.svelte | 4 ++-- 14 files changed, 23 insertions(+), 22 deletions(-) diff --git a/ts/components/Absolute.svelte b/ts/components/Absolute.svelte index b1ce59899c8..d61c653faae 100644 --- a/ts/components/Absolute.svelte +++ b/ts/components/Absolute.svelte @@ -3,10 +3,10 @@ Copyright: Ankitects Pty Ltd and contributors License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html -->
diff --git a/ts/components/ButtonGroup.svelte b/ts/components/ButtonGroup.svelte index 28254d3665a..326f67d50b6 100644 --- a/ts/components/ButtonGroup.svelte +++ b/ts/components/ButtonGroup.svelte @@ -4,7 +4,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html --> diff --git a/ts/components/SelectButton.svelte b/ts/components/SelectButton.svelte index 47442efde11..0a008b9a940 100644 --- a/ts/components/SelectButton.svelte +++ b/ts/components/SelectButton.svelte @@ -22,7 +22,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html onMount(() => dispatch("mount", { button: buttonRef })); - {#each deckNameIds as { id, name }} diff --git a/ts/import-csv/DelimiterSelector.svelte b/ts/import-csv/DelimiterSelector.svelte index b574bc1500f..3a0e238eb64 100644 --- a/ts/import-csv/DelimiterSelector.svelte +++ b/ts/import-csv/DelimiterSelector.svelte @@ -27,7 +27,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html {tr.importingFieldSeparator()} - {#each dupeResolutions as { label, value }} diff --git a/ts/import-csv/MapperRow.svelte b/ts/import-csv/MapperRow.svelte index 98c99c0f057..58dc8bc5b53 100644 --- a/ts/import-csv/MapperRow.svelte +++ b/ts/import-csv/MapperRow.svelte @@ -17,7 +17,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html {label} - {#each notetypeNameIds as { id, name }} diff --git a/ts/lib/BUILD.bazel b/ts/lib/BUILD.bazel index 1e4badde2d8..59b768f263f 100644 --- a/ts/lib/BUILD.bazel +++ b/ts/lib/BUILD.bazel @@ -1,5 +1,4 @@ load("@rules_python//python:defs.bzl", "py_binary") -load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:protobuf.bzl", "protobufjs_library") load("//ts:typescript.bzl", "typescript") @@ -59,8 +58,6 @@ typescript( # Tests ################ -prettier_test() - eslint_test() jest_test( diff --git a/ts/mathjax/BUILD.bazel b/ts/mathjax/BUILD.bazel index 19d05a12752..9b9964beb78 100644 --- a/ts/mathjax/BUILD.bazel +++ b/ts/mathjax/BUILD.bazel @@ -1,4 +1,3 @@ -load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:esbuild.bzl", "esbuild") load("//ts:typescript.bzl", "typescript") @@ -19,6 +18,4 @@ esbuild( # Tests ################ -prettier_test() - eslint_test() diff --git a/ts/prettier.bzl b/ts/prettier.bzl deleted file mode 100644 index 26d2e8bea6c..00000000000 --- a/ts/prettier.bzl +++ /dev/null @@ -1,35 +0,0 @@ -load( - "@npm//prettier:index.bzl", - _prettier_test = "prettier_test", -) - -def prettier_test(name = "format_check", srcs = None, exclude = [], **kwargs): - if not srcs: - srcs = native.glob([ - "**/*.ts", - "**/*.js", - "**/*.svelte", - "**/*.md", - ], exclude = exclude) - - _prettier_test( - name = name, - args = [ - "--config", - "$(location //:.prettierrc)", - "--check", - ] + [native.package_name() + "/" + f for f in srcs], - data = [ - "//:.prettierrc", - "@npm//prettier-plugin-svelte", - ] + srcs, - **kwargs - ) - -def prettier(name = "format", **kwargs): - native.sh_binary( - name = name, - srcs = ["format.sh"], - args = ["$(location @nodejs//:node_bin)"], - data = ["@nodejs//:node_bin"], - ) diff --git a/ts/reviewer/BUILD.bazel b/ts/reviewer/BUILD.bazel index 2ca07d74431..2d22ef9f74d 100644 --- a/ts/reviewer/BUILD.bazel +++ b/ts/reviewer/BUILD.bazel @@ -1,4 +1,3 @@ -load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:esbuild.bzl", "esbuild") load("//ts:compile_sass.bzl", "compile_sass") @@ -43,6 +42,4 @@ esbuild( # Tests ################ -prettier_test() - eslint_test() diff --git a/ts/sveltelib/BUILD.bazel b/ts/sveltelib/BUILD.bazel index b04c4fb3c7c..6799cfa9595 100644 --- a/ts/sveltelib/BUILD.bazel +++ b/ts/sveltelib/BUILD.bazel @@ -1,4 +1,3 @@ -load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:typescript.bzl", "typescript") @@ -15,6 +14,4 @@ typescript( # Tests ################ -prettier_test() - eslint_test() diff --git a/ts/tag-editor/BUILD.bazel b/ts/tag-editor/BUILD.bazel index c88efa63016..d44a3200f59 100644 --- a/ts/tag-editor/BUILD.bazel +++ b/ts/tag-editor/BUILD.bazel @@ -1,5 +1,4 @@ load("//ts/svelte:svelte.bzl", "compile_svelte", "svelte_check") -load("//ts:prettier.bzl", "prettier_test") load("//ts:eslint.bzl", "eslint_test") load("//ts:typescript.bzl", "typescript") @@ -27,8 +26,6 @@ typescript( # Tests ################ -prettier_test() - eslint_test() svelte_check( diff --git a/ts/tag-editor/Tag.svelte b/ts/tag-editor/Tag.svelte index acf66d4468a..82b885a1327 100644 --- a/ts/tag-editor/Tag.svelte +++ b/ts/tag-editor/Tag.svelte @@ -7,7 +7,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { pageTheme } from "../sveltelib/theme"; - let className: string = ""; + let className = ""; export { className as class }; export let tooltip: string | undefined = undefined; @@ -15,7 +15,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const dispatch = createEventDispatcher(); - let flashing: boolean = false; + let flashing = false; export function flash(): void { flashing = true; diff --git a/ts/tag-editor/TagDeleteBadge.svelte b/ts/tag-editor/TagDeleteBadge.svelte index 15dcd69e209..01c872e2e89 100644 --- a/ts/tag-editor/TagDeleteBadge.svelte +++ b/ts/tag-editor/TagDeleteBadge.svelte @@ -6,7 +6,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import Badge from "../components/Badge.svelte"; import { deleteIcon } from "./icons"; - let className: string = ""; + let className = ""; export { className as class }; diff --git a/ts/tag-editor/TagEditMode.svelte b/ts/tag-editor/TagEditMode.svelte index 49159e439aa..a54619db1c9 100644 --- a/ts/tag-editor/TagEditMode.svelte +++ b/ts/tag-editor/TagEditMode.svelte @@ -9,7 +9,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import TagWithTooltip from "./TagWithTooltip.svelte"; export let name: string; - let className: string = ""; + let className = ""; export { className as class }; export let tooltip: string; diff --git a/ts/tag-editor/TagEditor.svelte b/ts/tag-editor/TagEditor.svelte index ea5156fd1c8..224bbbc3a86 100644 --- a/ts/tag-editor/TagEditor.svelte +++ b/ts/tag-editor/TagEditor.svelte @@ -23,7 +23,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import WithAutocomplete from "./WithAutocomplete.svelte"; export let tags: Writable; - export let keyCombination: string = "Control+Shift+T"; + export let keyCombination = "Control+Shift+T"; let tagTypes: TagType[]; function tagsToTagTypes(tags: string[]): void { @@ -52,7 +52,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html let activeInput: HTMLInputElement; let autocomplete: any; - let autocompleteDisabled: boolean = false; + let autocompleteDisabled = false; async function fetchSuggestions(input: string): Promise { const { tags } = await tagsService.completeTag( diff --git a/ts/tag-editor/TagInput.svelte b/ts/tag-editor/TagInput.svelte index e388e2bf68c..cac346615e1 100644 --- a/ts/tag-editor/TagInput.svelte +++ b/ts/tag-editor/TagInput.svelte @@ -14,7 +14,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } from "./tags"; export let id: string | undefined = undefined; - let className: string = ""; + let className = ""; export { className as class }; export let name: string; @@ -114,7 +114,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html event.preventDefault(); } - async function onDelimiter(event: Event, single: boolean = false): Promise { + async function onDelimiter(event: Event, single = false): Promise { const positionStart = input.selectionStart!; const positionEnd = input.selectionEnd!; diff --git a/ts/tag-editor/TagWithTooltip.svelte b/ts/tag-editor/TagWithTooltip.svelte index a4a1f17bda2..3cdead96e27 100644 --- a/ts/tag-editor/TagWithTooltip.svelte +++ b/ts/tag-editor/TagWithTooltip.svelte @@ -12,7 +12,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html import { delimChar } from "./tags"; export let name: string; - let className: string = ""; + let className = ""; export { className as class }; export let tooltip: string; diff --git a/ts/tag-editor/WithAutocomplete.svelte b/ts/tag-editor/WithAutocomplete.svelte index e71aba8262a..0a6db7a78e5 100644 --- a/ts/tag-editor/WithAutocomplete.svelte +++ b/ts/tag-editor/WithAutocomplete.svelte @@ -24,7 +24,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html }); let selected: number | null = null; - let active: boolean = false; + let active = false; const dispatch = createEventDispatcher<{ update: void; @@ -124,13 +124,16 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } - - + + diff --git a/ts/tag-editor/tag-options-button/TagsSelectedButton.svelte b/ts/tag-editor/tag-options-button/TagsSelectedButton.svelte index 4ae80c8a2da..140ddecca5e 100644 --- a/ts/tag-editor/tag-options-button/TagsSelectedButton.svelte +++ b/ts/tag-editor/tag-options-button/TagsSelectedButton.svelte @@ -21,13 +21,11 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const removeShortcut = "Backspace"; - +
{@html dotsIcon} From 4a391c83e020c4050232eae4f6f63a60865e02d4 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Sat, 16 Jul 2022 17:00:08 +0200 Subject: [PATCH 10/15] Add more svelte-specific eslint rules --- .eslintrc.js | 7 +++++++ ts/import-csv/Tags.svelte | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.eslintrc.js b/.eslintrc.js index 6a869276292..b3801323a05 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -48,6 +48,13 @@ module.exports = { parser: "@typescript-eslint/parser", }, rules: { + "svelte/no-useless-mustaches": "warn", + "svelte/require-optimized-style-attribute": "warn", + "svelte/html-quotes": "warn", + "svelte/prefer-class-directive": "warn", + "svelte/prefer-style-directive": "warn", + "svelte/shorthand-attribute": "warn", + "svelte/shorthand-directive": "warn", "no-redeclare": "off", "no-global-assign": "off", "no-self-assign": "off", diff --git a/ts/import-csv/Tags.svelte b/ts/import-csv/Tags.svelte index 721b96dbfa3..ad2ee89a128 100644 --- a/ts/import-csv/Tags.svelte +++ b/ts/import-csv/Tags.svelte @@ -23,7 +23,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html (globalTags = detail.tags)} - keyCombination={"Control+T"} + keyCombination="Control+T" /> From c999f3f74f823a16453ac3612236d9e557c4aa24 Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Mon, 25 Jul 2022 23:51:55 +0200 Subject: [PATCH 11/15] Restore prettier.bzl --- .eslintrc.js | 5 +-- .prettierrc | 0 .prettierrc.js | 6 ++++ BUILD.bazel | 2 +- docs/BUILD.bazel | 1 - ts/change-notetype/ChangeNotetypePage.svelte | 2 +- ts/prettier.bzl | 35 ++++++++++++++++++++ 7 files changed, 44 insertions(+), 7 deletions(-) delete mode 100644 .prettierrc create mode 100644 .prettierrc.js create mode 100644 ts/prettier.bzl diff --git a/.eslintrc.js b/.eslintrc.js index b3801323a05..9c1d2a69695 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -34,10 +34,7 @@ module.exports = { "simple-import-sort/exports": "warn", "prefer-const": "warn", "no-nested-ternary": "warn", - "prettier/prettier": [ - "warn", - { trailingComma: "all", printWidth: 88, tabWidth: 4, semi: true }, - ], + "prettier/prettier": "warn", "@typescript-eslint/no-non-null-assertion": "off", }, overrides: [ diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 00000000000..e4ecc75d9c2 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,6 @@ + module.exports = { + trailingComma: "all", + printWidth: 88, + tabWidth: 4, + semi: true, +}; diff --git a/BUILD.bazel b/BUILD.bazel index 49affd8d646..ad0d082f355 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -35,7 +35,7 @@ pkg_tar( exports_files([ "defs.bzl", "package.json", - ".prettierrc", ".prettierignore", + ".prettierrc.js", ".eslintrc.js", ]) diff --git a/docs/BUILD.bazel b/docs/BUILD.bazel index 23af06ebb71..ed474913b98 100644 --- a/docs/BUILD.bazel +++ b/docs/BUILD.bazel @@ -1,4 +1,3 @@ load("//ts:prettier.bzl", "prettier_test") # formatting of the .md files -prettier_test() diff --git a/ts/change-notetype/ChangeNotetypePage.svelte b/ts/change-notetype/ChangeNotetypePage.svelte index b1106af9ffc..c8ea1711ffa 100644 --- a/ts/change-notetype/ChangeNotetypePage.svelte +++ b/ts/change-notetype/ChangeNotetypePage.svelte @@ -23,7 +23,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
-
+
diff --git a/ts/prettier.bzl b/ts/prettier.bzl new file mode 100644 index 00000000000..aaa99842700 --- /dev/null +++ b/ts/prettier.bzl @@ -0,0 +1,35 @@ +load( + "@npm//prettier:index.bzl", + _prettier_test = "prettier_test", +) + +def prettier_test(name = "format_check", srcs = None, exclude = [], **kwargs): + if not srcs: + srcs = native.glob([ + "**/*.ts", + "**/*.js", + "**/*.svelte", + "**/*.md", + ], exclude = exclude) + + _prettier_test( + name = name, + args = [ + "--config", + "$(location //:.prettierrc.js)", + "--check", + ] + [native.package_name() + "/" + f for f in srcs], + data = [ + "//:.prettierrc.js", + "@npm//prettier-plugin-svelte", + ] + srcs, + **kwargs + ) + +def prettier(name = "format", **kwargs): + native.sh_binary( + name = name, + srcs = ["format.sh"], + args = ["$(location @nodejs//:node_bin)"], + data = ["@nodejs//:node_bin"], + ) From af7102b631739d3a628129410f5dbd376083bcca Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Tue, 26 Jul 2022 00:10:54 +0200 Subject: [PATCH 12/15] Remove deps from eslint rule --- ts/editor/BUILD.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts/editor/BUILD.bazel b/ts/editor/BUILD.bazel index 880d7d1b28d..d99fc37fe23 100644 --- a/ts/editor/BUILD.bazel +++ b/ts/editor/BUILD.bazel @@ -90,7 +90,7 @@ esbuild( # Tests ################ -eslint_test(deps = _ts_deps) +eslint_test() svelte_check( name = "svelte_check", From 67a6fb9d75d373c653f9855fa52877b395025e1a Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Tue, 26 Jul 2022 10:49:12 +0200 Subject: [PATCH 13/15] Remove eslint-plugin-prettier --- .eslintrc.js | 4 +--- package.json | 1 - ts/components/ButtonGroupItem.svelte | 21 ++++++++++++------- ts/components/ButtonToolbar.svelte | 1 + ts/components/IconConstrain.svelte | 2 +- ts/deck-options/DailyLimits.svelte | 2 +- ts/deck-options/NewOptions.svelte | 2 +- ts/deck-options/TabbedValue.svelte | 2 +- ts/deck-options/TimerOptions.svelte | 2 +- ts/editable/Mathjax.svelte | 2 +- ts/editor/HandleControl.svelte | 2 +- ts/editor/HandleSelection.svelte | 2 +- .../editor-toolbar/WithColorHelper.svelte | 2 +- ts/eslint.bzl | 2 -- ts/import-csv/StickyFooter.svelte | 2 +- ts/licenses.json | 8 +------ yarn.lock | 19 ----------------- 17 files changed, 26 insertions(+), 50 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 9c1d2a69695..3eb6fc56d5d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -8,7 +8,7 @@ module.exports = { "plugin:svelte/prettier", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/eslint-recommended", - "plugin:prettier/recommended", + "prettier", ], parser: "@typescript-eslint/parser", parserOptions: { @@ -16,7 +16,6 @@ module.exports = { }, plugins: [ "svelte", - "prettier", "import", "simple-import-sort", "@typescript-eslint", @@ -34,7 +33,6 @@ module.exports = { "simple-import-sort/exports": "warn", "prefer-const": "warn", "no-nested-ternary": "warn", - "prettier/prettier": "warn", "@typescript-eslint/no-non-null-assertion": "off", }, overrides: [ diff --git a/package.json b/package.json index 42814e6493f..992146ec23c 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "eslint": "^7.24.0", "eslint-config-prettier": "^8.5.0", "eslint-plugin-compat": "^3.13.0", - "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-svelte": "^2.2.0", "espree": "^9.0.0", "estraverse": "^5.2.0", diff --git a/ts/components/ButtonGroupItem.svelte b/ts/components/ButtonGroupItem.svelte index 6150b76d855..c671122b878 100644 --- a/ts/components/ButtonGroupItem.svelte +++ b/ts/components/ButtonGroupItem.svelte @@ -67,28 +67,29 @@ export let id: string | undefined = undefined; export let hostProps: ButtonSlotHostProps | undefined = undefined; - let style: string; + let leftRadius = 0; + let rightRadius = 0; if (!context.available()) { console.log("ButtonGroupItem: should always have a slotHostContext"); } const { detach, position } = hostProps ?? context.get().getProps(); - const radius = "5px"; + const radius = 5; function updateButtonStyle(position: ButtonPosition) { switch (position) { case ButtonPosition.Standalone: - style = `--border-left-radius: ${radius}; --border-right-radius: ${radius}; `; + leftRadius = radius; + rightRadius = radius; break; case ButtonPosition.InlineStart: - style = `--border-left-radius: ${radius}; --border-right-radius: 0; `; + leftRadius = radius; break; case ButtonPosition.Center: - style = "--border-left-radius: 0; --border-right-radius: 0; "; break; case ButtonPosition.InlineEnd: - style = `--border-left-radius: 0; --border-right-radius: ${radius}; `; + rightRadius = radius; break; } } @@ -96,8 +97,12 @@ $: updateButtonStyle($position); - -
+
{#if !$detach} {/if} diff --git a/ts/components/ButtonToolbar.svelte b/ts/components/ButtonToolbar.svelte index 87cff03fbcd..ccc8b23da86 100644 --- a/ts/components/ButtonToolbar.svelte +++ b/ts/components/ButtonToolbar.svelte @@ -23,6 +23,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html $: style = buttonSize + buttonWrap; +
diff --git a/ts/deck-options/DailyLimits.svelte b/ts/deck-options/DailyLimits.svelte index dfaa7858a65..5eb4262fd94 100644 --- a/ts/deck-options/DailyLimits.svelte +++ b/ts/deck-options/DailyLimits.svelte @@ -16,7 +16,7 @@ export let state: DeckOptionsState; export let api: Record; - export function onPresetChange() { + export function onPresetChange(): void { newTabs[0] = new ValueTab( tr.deckConfigSharedPreset(), $config.newPerDay, diff --git a/ts/deck-options/NewOptions.svelte b/ts/deck-options/NewOptions.svelte index 647260daa05..fee3fbfaa60 100644 --- a/ts/deck-options/NewOptions.svelte +++ b/ts/deck-options/NewOptions.svelte @@ -94,7 +94,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html bind:value={$config.newCardInsertOrder} defaultValue={defaults.newCardInsertOrder} choices={newInsertOrderChoices} - breakpoint={"md"} + breakpoint="md" markdownTooltip={tr.deckConfigNewInsertionOrderTooltip()} > {tr.deckConfigNewInsertionOrder()} diff --git a/ts/deck-options/TabbedValue.svelte b/ts/deck-options/TabbedValue.svelte index 3490d3dde76..2308d9e57e9 100644 --- a/ts/deck-options/TabbedValue.svelte +++ b/ts/deck-options/TabbedValue.svelte @@ -44,7 +44,7 @@
    {#each tabs as tab, idx} -
  • +
  • {tab.title}
  • {/each} diff --git a/ts/deck-options/TimerOptions.svelte b/ts/deck-options/TimerOptions.svelte index 920d1dfa248..977a47cca92 100644 --- a/ts/deck-options/TimerOptions.svelte +++ b/ts/deck-options/TimerOptions.svelte @@ -44,7 +44,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html -
    +
    /* prevent triggering Bootstrap dropdown */ event.stopImmediatePropagation()} - style="--left: {left}px; --top: {top}px; --width: {width}px; --height: {height}px; --offsetX: {offsetX}px; --offsetY: {offsetY}px;" + style:--left="{left}px" style:--top="{top}px" style:--height="{height}px" style:--offsetY="{offsetY}px" style:--offsetX="{offsetX}px" style:--width="{width}px" >
    diff --git a/ts/editor/editor-toolbar/WithColorHelper.svelte b/ts/editor/editor-toolbar/WithColorHelper.svelte index 01ccbf88d9b..7204165bd58 100644 --- a/ts/editor/editor-toolbar/WithColorHelper.svelte +++ b/ts/editor/editor-toolbar/WithColorHelper.svelte @@ -13,7 +13,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } -
    +
    diff --git a/ts/eslint.bzl b/ts/eslint.bzl index 2cd38a3c1d9..4b3bea82634 100644 --- a/ts/eslint.bzl +++ b/ts/eslint.bzl @@ -26,8 +26,6 @@ def eslint_test(name = "eslint", srcs = None, deps = [], exclude = []): "@npm//eslint-plugin-import", "@npm//eslint-plugin-simple-import-sort", "@npm//eslint-plugin-compat", - "@npm//eslint-plugin-prettier", "@npm//eslint-config-prettier", - "@npm//prettier-plugin-svelte", ] + srcs + deps, ) diff --git a/ts/import-csv/StickyFooter.svelte b/ts/import-csv/StickyFooter.svelte index 3ca552aceab..5a14569cb50 100644 --- a/ts/import-csv/StickyFooter.svelte +++ b/ts/import-csv/StickyFooter.svelte @@ -16,7 +16,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html const keyCombination = "Control+Enter"; - function basename(path: String): String { + function basename(path: string): string { return path.split(/[\\/]/).pop()!; } diff --git a/ts/licenses.json b/ts/licenses.json index 4d643455998..de43359686e 100644 --- a/ts/licenses.json +++ b/ts/licenses.json @@ -1804,13 +1804,6 @@ "path": "node_modules/supports-preserve-symlinks-flag", "licenseFile": "node_modules/supports-preserve-symlinks-flag/LICENSE" }, - "svelte@3.49.0": { - "licenses": "MIT", - "repository": "https://github.com/sveltejs/svelte", - "publisher": "Rich Harris", - "path": "node_modules/svelte", - "licenseFile": "node_modules/svelte/LICENSE.md" - }, "table@6.8.0": { "licenses": "BSD-3-Clause", "repository": "https://github.com/gajus/table", @@ -1921,3 +1914,4 @@ "licenseFile": "node_modules/yallist/LICENSE" } } + diff --git a/yarn.lock b/yarn.lock index 4c69203b9b0..f1bee839bb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2309,13 +2309,6 @@ eslint-plugin-import@^2.25.4: resolve "^1.20.0" tsconfig-paths "^3.12.0" -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - eslint-plugin-simple-import-sort@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-7.0.0.tgz#a1dad262f46d2184a90095a60c66fef74727f0f8" @@ -2513,11 +2506,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - fast-glob@^3.2.7, fast-glob@^3.2.9: version "3.2.11" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" @@ -4213,13 +4201,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier-plugin-svelte@2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz#0e845b560b55cd1d951d6c50431b4949f8591746" From c5af0ec64ca0c7dc85bfdb21dccd8de7f39593fc Mon Sep 17 00:00:00 2001 From: Henrik Giesel Date: Tue, 26 Jul 2022 21:11:27 +0200 Subject: [PATCH 14/15] Satisfy new eslint svelte rules --- ts/components/ButtonGroup.svelte | 22 +++++++-------- ts/components/ButtonToolbar.svelte | 17 ++++-------- ts/editor/editor-toolbar/AddonButtons.svelte | 28 ++++++++++++-------- ts/graphs/CardCounts.svelte | 6 ++--- ts/graphs/Tooltip.svelte | 2 +- 5 files changed, 37 insertions(+), 38 deletions(-) diff --git a/ts/components/ButtonGroup.svelte b/ts/components/ButtonGroup.svelte index 326f67d50b6..dc965c0e1e0 100644 --- a/ts/components/ButtonGroup.svelte +++ b/ts/components/ButtonGroup.svelte @@ -7,21 +7,21 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html let className = ""; export { className as class }; - export let size: number | undefined = undefined; - export let wrap: boolean | undefined = undefined; + export let size = -1; + export let wrap = false; - $: buttonSize = size ? `--buttons-size: ${size}rem; ` : ""; let buttonWrap: string; - $: if (wrap === undefined) { - buttonWrap = ""; - } else { - buttonWrap = wrap ? `--buttons-wrap: wrap; ` : `--buttons-wrap: nowrap; `; - } - - $: style = buttonSize + buttonWrap; + $: buttonWrap = wrap ? `wrap` : `nowrap`; -
    +
    diff --git a/ts/components/ButtonToolbar.svelte b/ts/components/ButtonToolbar.svelte index ccc8b23da86..47bad661d5c 100644 --- a/ts/components/ButtonToolbar.svelte +++ b/ts/components/ButtonToolbar.svelte @@ -9,26 +9,19 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html let className = ""; export { className as class }; - export let size: number | undefined = undefined; - export let wrap: boolean | undefined = undefined; + export let size = -1; + export let wrap = false; - $: buttonSize = size ? `--buttons-size: ${size}rem; ` : ""; let buttonWrap: string; - $: if (wrap === undefined) { - buttonWrap = ""; - } else { - buttonWrap = wrap ? `--buttons-wrap: wrap; ` : `--buttons-wrap: nowrap; `; - } - - $: style = buttonSize + buttonWrap; + $: buttonWrap = wrap ? `wrap` : `nowrap`; -