From c94c2b3373d8aefe6c14ed67fc070e9fdc6e6e03 Mon Sep 17 00:00:00 2001 From: Keavon Chambers Date: Wed, 14 Apr 2021 11:44:09 -0700 Subject: [PATCH] Fix web code linting to be portable across environments --- .vscode/settings.json | 34 +- client/web/.eslintignore | 5 +- client/web/.eslintrc.js | 37 +- client/web/.gitignore | 2 +- client/web/package-lock.json | 319 ++++++++++++++---- client/web/package.json | 15 +- client/web/src/App.vue | 4 +- .../components/panel-system/DockablePanel.vue | 5 +- .../src/components/panel-system/PanelArea.vue | 14 +- client/web/src/components/panels/Document.vue | 28 +- .../web/src/components/panels/LayerTree.vue | 13 +- client/web/src/components/panels/Minimap.vue | 13 +- .../web/src/components/panels/Properties.vue | 13 +- .../src/components/widgets/ItemDivider.vue | 3 +- .../src/components/widgets/NumberInput.vue | 7 +- .../src/components/widgets/RadioPicker.vue | 7 +- .../window/footer-bar/FooterBar.vue | 1 - .../window/footer-bar/InputHint.vue | 5 +- .../window/title-bar/WindowTitle.vue | 2 +- client/web/src/response-handler.ts | 4 +- client/web/src/types.d.ts | 3 - client/web/tsconfig.json | 2 - client/web/vue.config.js | 14 +- 23 files changed, 361 insertions(+), 189 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 3dd2cf76e..343c7b778 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,34 +4,32 @@ "editor.formatOnPaste": true }, "[vue]": { - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, + "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "editor.formatOnSave": true, }, "[javascript]": { - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, + "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "editor.formatOnSave": true, }, - "[typescript]": { - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true - }, + "[json]": { + "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, + "editor.formatOnSave": true, + }, + "[typescript, json]": { + "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "editor.formatOnSave": true, }, "rust-analyzer.diagnostics.disabled": [ "missing-unsafe" // Remove when rust-analyzer bug fixes unsafe code on WASM JavaScript https://github.com/rust-analyzer/rust-analyzer/issues/5412 ], - "vetur.format.options.useTabs": true, - "eslint.format.enable": true, - "eslint.workingDirectories": [ - "./client/web" - ], "files.eol": "\n", "html.format.wrapLineLength": 200, - "vetur.validation.interpolation": false, - "vetur.format.options.tabSize": 4, - "vetur.experimental.templateInterpolationService": true + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "eslint.format.enable": true, + "eslint.workingDirectories": ["./client/web"], + "eslint.validate": [ + "javascript", + "typescript", + ], + "vetur.format.enable": false, } \ No newline at end of file diff --git a/client/web/.eslintignore b/client/web/.eslintignore index 18da185b6..6724b111a 100644 --- a/client/web/.eslintignore +++ b/client/web/.eslintignore @@ -1,4 +1,7 @@ node_modules/ dist/ pkg/ -wasm/pkg/* \ No newline at end of file +wasm/pkg/* +!.*.js +!.*.ts +!.*.json \ No newline at end of file diff --git a/client/web/.eslintrc.js b/client/web/.eslintrc.js index 141ac7dbb..879500821 100644 --- a/client/web/.eslintrc.js +++ b/client/web/.eslintrc.js @@ -3,35 +3,40 @@ module.exports = { env: { node: true, }, - extends: [ - "plugin:vue/vue3-essential", - "@vue/airbnb", - "@vue/typescript/recommended", - ], + extends: ["plugin:vue/vue3-essential", "@vue/airbnb", "@vue/typescript/recommended", "plugin:prettier-vue/recommended", "prettier"], parserOptions: { ecmaVersion: 2020, }, settings: { "import/resolver": { - // `node` must be the top property + // `node` must be listed first node: {}, - webpack: { - config: require.resolve("@vue/cli-service/webpack.config.js"), + webpack: { config: require.resolve("@vue/cli-service/webpack.config.js") }, + }, + "prettier-vue": { + SFCBlocks: { + template: true, + style: true, }, }, }, rules: { - "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", - "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", - "no-tabs": 0, - "max-len": 0, - "linebreak-style": ["error", "unix"], indent: ["error", "tab"], quotes: ["error", "double"], + "linebreak-style": ["error", "unix"], + "eol-last": ["error", "always"], + "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", + "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", + "max-len": ["error", { code: 200, tabWidth: 4 }], "@typescript-eslint/camelcase": "off", camelcase: ["error", { ignoreImports: true, ignoreDestructuring: true }], - "import/extensions": ["error", "ignorePackages", { - js: "never", jsx: "never", ts: "never", tsx: "never", - }], + "prettier-vue/prettier": [ + "error", + { + tabWidth: 4, + tabs: true, + printWidth: 200, + }, + ], }, }; diff --git a/client/web/.gitignore b/client/web/.gitignore index 18da185b6..3bc6c711f 100644 --- a/client/web/.gitignore +++ b/client/web/.gitignore @@ -1,4 +1,4 @@ node_modules/ dist/ pkg/ -wasm/pkg/* \ No newline at end of file +wasm/pkg/* diff --git a/client/web/package-lock.json b/client/web/package-lock.json index eb3044902..d6a672132 100644 --- a/client/web/package-lock.json +++ b/client/web/package-lock.json @@ -1205,38 +1205,38 @@ } }, "@vue/compiler-core": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.7.tgz", - "integrity": "sha512-JFohgBXoyUc3mdeI2WxlhjQZ5fakfemJkZHX8Gu/nFbEg3+lKVUZmNKWmmnp9aOzJQZKoj77LjmFxiP+P+7lMQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.11.tgz", + "integrity": "sha512-6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw==", "requires": { "@babel/parser": "^7.12.0", "@babel/types": "^7.12.0", - "@vue/shared": "3.0.7", + "@vue/shared": "3.0.11", "estree-walker": "^2.0.1", "source-map": "^0.6.1" } }, "@vue/compiler-dom": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.7.tgz", - "integrity": "sha512-VnIH9EbWQm/Tkcp+8dCaNVsVvhm/vxCrIKWRkXY9215hTqOqQOvejT8IMjd2kc++nIsYMsdQk6H9qqBvoLe/Cw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.11.tgz", + "integrity": "sha512-+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw==", "requires": { - "@vue/compiler-core": "3.0.7", - "@vue/shared": "3.0.7" + "@vue/compiler-core": "3.0.11", + "@vue/shared": "3.0.11" } }, "@vue/compiler-sfc": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.7.tgz", - "integrity": "sha512-37/QILpGE+J3V+bP9Slg9e6xGqfk+MmS2Yj8ChR4fS0/qWUU/YoYHE0GPIzjmBdH0JVOOmJqunxowIXmqNiHng==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.11.tgz", + "integrity": "sha512-7fNiZuCecRleiyVGUWNa6pn8fB2fnuJU+3AGjbjl7r1P5wBivfl02H4pG+2aJP5gh2u+0wXov1W38tfWOphsXw==", "dev": true, "requires": { - "@babel/parser": "^7.12.0", - "@babel/types": "^7.12.0", - "@vue/compiler-core": "3.0.7", - "@vue/compiler-dom": "3.0.7", - "@vue/compiler-ssr": "3.0.7", - "@vue/shared": "3.0.7", + "@babel/parser": "^7.13.9", + "@babel/types": "^7.13.0", + "@vue/compiler-core": "3.0.11", + "@vue/compiler-dom": "3.0.11", + "@vue/compiler-ssr": "3.0.11", + "@vue/shared": "3.0.11", "consolidate": "^0.16.0", "estree-walker": "^2.0.1", "hash-sum": "^2.0.0", @@ -1274,13 +1274,13 @@ } }, "postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "version": "8.2.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.10.tgz", + "integrity": "sha512-b/h7CPV7QEdrqIxtAf2j31U5ef05uBDuvoXv6L51Q4rcS1jdlXAVKJv+atCFdUXYl9dyTHGyoMzIepwowRJjFw==", "dev": true, "requires": { "colorette": "^1.2.2", - "nanoid": "^3.1.20", + "nanoid": "^3.1.22", "source-map": "^0.6.1" } }, @@ -1293,13 +1293,13 @@ } }, "@vue/compiler-ssr": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.7.tgz", - "integrity": "sha512-nHRbHeSpfXwjypettjrA16TjgfDcPEwq3m/zHnGyLC1QqdLtklXmpSM43/CPwwTCRa/qdt0pldJf22MiCEuTSQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.11.tgz", + "integrity": "sha512-66yUGI8SGOpNvOcrQybRIhl2M03PJ+OrDPm78i7tvVln86MHTKhM3ERbALK26F7tXl0RkjX4sZpucCpiKs3MnA==", "dev": true, "requires": { - "@vue/compiler-dom": "3.0.7", - "@vue/shared": "3.0.7" + "@vue/compiler-dom": "3.0.11", + "@vue/shared": "3.0.11" } }, "@vue/component-compiler-utils": { @@ -1335,6 +1335,13 @@ "yallist": "^2.1.2" } }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true + }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", @@ -1371,36 +1378,36 @@ "dev": true }, "@vue/reactivity": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.7.tgz", - "integrity": "sha512-FotWcNNaKhqpFZrdgsUOZ1enlJ5lhTt01CNTtLSyK7jYFgZBTuw8vKsEutZKDYZ1XKotOfoeO8N3pZQqmM6Etw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.11.tgz", + "integrity": "sha512-SKM3YKxtXHBPMf7yufXeBhCZ4XZDKP9/iXeQSC8bBO3ivBuzAi4aZi0bNoeE2IF2iGfP/AHEt1OU4ARj4ao/Xw==", "requires": { - "@vue/shared": "3.0.7" + "@vue/shared": "3.0.11" } }, "@vue/runtime-core": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.7.tgz", - "integrity": "sha512-DBAZAwVvdmMXuyd6/9qqj/kYr/GaLTmn1L2/QLxLwP+UfhIboiTSBc/tUUb8MRk7Bb98GzNeAWkkT6AfooS3dQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.11.tgz", + "integrity": "sha512-87XPNwHfz9JkmOlayBeCCfMh9PT2NBnv795DSbi//C/RaAnc/bGZgECjmkD7oXJ526BZbgk9QZBPdFT8KMxkAg==", "requires": { - "@vue/reactivity": "3.0.7", - "@vue/shared": "3.0.7" + "@vue/reactivity": "3.0.11", + "@vue/shared": "3.0.11" } }, "@vue/runtime-dom": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.7.tgz", - "integrity": "sha512-Oij4ruOtnpQpCj+/Q3JPzgpTJ1Q7+N67pA53A8KVITEtxfvKL46NN6dhAZ5NGqwX6RWZpYqWQNewITeF0pHr8g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.11.tgz", + "integrity": "sha512-jm3FVQESY3y2hKZ2wlkcmFDDyqaPyU3p1IdAX92zTNeCH7I8zZ37PtlE1b9NlCtzV53WjB4TZAYh9yDCMIEumA==", "requires": { - "@vue/runtime-core": "3.0.7", - "@vue/shared": "3.0.7", + "@vue/runtime-core": "3.0.11", + "@vue/shared": "3.0.11", "csstype": "^2.6.8" } }, "@vue/shared": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.7.tgz", - "integrity": "sha512-dn5FyfSc4ky424jH4FntiHno7Ss5yLkqKNmM/NXwANRnlkmqu74pnGetexDFVG5phMk9/FhwovUZCWGxsotVKg==" + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz", + "integrity": "sha512-b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA==" }, "@vue/web-component-wrapper": { "version": "1.3.0", @@ -1409,7 +1416,7 @@ "dev": true }, "@wasm-tool/wasm-pack-plugin": { - "version": "github:wasm-tool/wasm-pack-plugin#f0cbb6dda359440374f54b5173077fd582162ad2", + "version": "github:wasm-tool/wasm-pack-plugin#2984f4b570756e05b5d3fcd5b9d00878a4b63695", "from": "github:wasm-tool/wasm-pack-plugin", "dev": true, "requires": { @@ -4594,9 +4601,9 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" @@ -4636,6 +4643,12 @@ "object.entries": "^1.1.2" } }, + "eslint-config-prettier": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.2.0.tgz", + "integrity": "sha512-dWV9EVeSo2qodOPi1iBYU/x6F6diHv8uujxbxr77xExs3zTAlNXvVZKiyLsQGNz7yPV2K49JY5WjPzNIuDc2Bw==", + "dev": true + }, "eslint-import-resolver-node": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", @@ -4863,10 +4876,168 @@ } } }, + "eslint-plugin-prettier-vue": { + "version": "3.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier-vue/-/eslint-plugin-prettier-vue-3.0.0-alpha.2.tgz", + "integrity": "sha512-BisvxytJAANvbele4VNj/vOi1aygD38offE6ow6KYinLP/x3qwtbeQDRtftHAC7NeoGcPN3rcOmPvHFh6DRVtQ==", + "dev": true, + "requires": { + "@vue/compiler-sfc": "3.0.0-rc.5", + "chalk": "^4.0.0", + "prettier": "^1.18.2 || ^2.0.0", + "prettier-linter-helpers": "^1.0.0" + }, + "dependencies": { + "@vue/compiler-core": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0-rc.5.tgz", + "integrity": "sha512-dNz5AObEYg0Oglw3emIsBhTAOVfObrfxDaAzR0UTRDDq+Ohfr6KTSaVQAH88Ym+oa08ZlLZBFc6ARe9doAOIxg==", + "dev": true, + "requires": { + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", + "@vue/shared": "3.0.0-rc.5", + "estree-walker": "^2.0.1", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0-rc.5.tgz", + "integrity": "sha512-z8n+R1GhFnWuKURLYxfVSEfP7nSNM91qteobxwys55fhlZZuReouMnUwgrn+ois/IL6RdFlT9H+n4+N6yLrdJA==", + "dev": true, + "requires": { + "@vue/compiler-core": "3.0.0-rc.5", + "@vue/shared": "3.0.0-rc.5" + } + }, + "@vue/compiler-sfc": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0-rc.5.tgz", + "integrity": "sha512-huoIFEfFCJxHcpoByAUQti7CIwJdHPLJXKuy2HG7J1B+IEKugtBdF50CLH35ZD8dWM0nyOMFFqTbO7i6CCjL3Q==", + "dev": true, + "requires": { + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4", + "@vue/compiler-core": "3.0.0-rc.5", + "@vue/compiler-dom": "3.0.0-rc.5", + "@vue/compiler-ssr": "3.0.0-rc.5", + "@vue/shared": "3.0.0-rc.5", + "consolidate": "^0.15.1", + "estree-walker": "^2.0.1", + "hash-sum": "^2.0.0", + "lru-cache": "^5.1.1", + "magic-string": "^0.25.7", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.27", + "postcss-modules": "^3.1.0", + "postcss-selector-parser": "^6.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0-rc.5.tgz", + "integrity": "sha512-OU5Vl2+bCDMImS9OeCVnl4lfxZ3/sopdwX2SrUWVKQvCxmmmlyWvoVkC6nNGCs/MrOmIMhKmL6etgzLTWyCkUg==", + "dev": true, + "requires": { + "@vue/compiler-dom": "3.0.0-rc.5", + "@vue/shared": "3.0.0-rc.5" + } + }, + "@vue/shared": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0-rc.5.tgz", + "integrity": "sha512-ZhcgGzBpp+pUzisZgQpM4ctIGgLpYjBj7/rZfbhEPxFHF/BuTV2jmhXvAl8aF9xDAejIcw85xCy92gDSwKtPag==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "postcss-modules": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz", + "integrity": "sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==", + "dev": true, + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "string-hash": "^1.1.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, "eslint-plugin-vue": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.8.0.tgz", - "integrity": "sha512-OGrnPz+PuYL2HmVyBHxm4mRjxW2kfFCQE6Hw9G6qOHs/Pcu0srOlCCW0FMa8SLzIEqxl8WuKoBSPcMnrjUG2vw==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.9.0.tgz", + "integrity": "sha512-2Q0qQp5+5h+pZvJKCbG1/jCRUYrdgAz5BYKGyTlp2NU8mx09u3Hp7PsH6d5qef6ojuPoCXMnrbbDxeoplihrSw==", "dev": true, "requires": { "eslint-utils": "^2.1.0", @@ -5282,6 +5453,12 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", @@ -9493,11 +9670,19 @@ "dev": true }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, - "optional": true + "requires": { + "fast-diff": "^1.1.2" + } }, "pretty-error": { "version": "2.1.2", @@ -11840,9 +12025,9 @@ "dev": true }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "validate-npm-package-license": { @@ -11885,13 +12070,13 @@ "dev": true }, "vue": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.7.tgz", - "integrity": "sha512-8h4TikD+JabbMK9aRlBO4laG0AtNHRPHynxYgWZ9sq1YUPfzynd9Jeeb27XNyZytC7aCQRX9xe1+TQJuc181Tw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.11.tgz", + "integrity": "sha512-3/eUi4InQz8MPzruHYSTQPxtM3LdZ1/S/BvaU021zBnZi0laRUyH6pfuE4wtUeLvI8wmUNwj5wrZFvbHUXL9dw==", "requires": { - "@vue/compiler-dom": "3.0.7", - "@vue/runtime-dom": "3.0.7", - "@vue/shared": "3.0.7" + "@vue/compiler-dom": "3.0.11", + "@vue/runtime-dom": "3.0.11", + "@vue/shared": "3.0.11" } }, "vue-class-component": { @@ -11920,9 +12105,9 @@ "dev": true }, "vue-loader": { - "version": "16.1.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", - "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.2.0.tgz", + "integrity": "sha512-TitGhqSQ61RJljMmhIGvfWzJ2zk9m1Qug049Ugml6QP3t0e95o0XJjk29roNEiPKJQBEi8Ord5hFuSuELzSp8Q==", "requires": { "chalk": "^4.1.0", "hash-sum": "^2.0.0", diff --git a/client/web/package.json b/client/web/package.json index 838271b32..68516aef3 100644 --- a/client/web/package.json +++ b/client/web/package.json @@ -16,9 +16,9 @@ "license": "Apache-2.0", "homepage": "https://www.graphite.design", "dependencies": { - "vue": "^3.0.7", + "vue": "^3.0.11", "vue-class-component": "^8.0.0-0", - "vue-loader": "^16.1.2" + "vue-loader": "^16.2.0" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^2.33.0", @@ -26,14 +26,17 @@ "@vue/cli-plugin-eslint": "^4.5.12", "@vue/cli-plugin-typescript": "^4.5.12", "@vue/cli-service": "^4.5.12", - "@vue/compiler-sfc": "^3.0.7", + "@vue/compiler-sfc": "^3.0.11", "@vue/eslint-config-airbnb": "^5.0.2", "@vue/eslint-config-typescript": "^5.0.2", "@wasm-tool/wasm-pack-plugin": "github:wasm-tool/wasm-pack-plugin", - "eslint": "^6.7.2", + "eslint": "^6.8.0", + "eslint-config-prettier": "^8.2.0", "eslint-plugin-import": "^2.20.2", - "eslint-plugin-vue": "^7.8.0", + "eslint-plugin-prettier-vue": "^3.0.0-alpha.2", + "eslint-plugin-vue": "^7.9.0", "lint-staged": "^9.5.0", + "prettier": "^2.2.1", "sass": "^1.32.8", "sass-loader": "^8.0.2", "typescript": "~3.9.3", @@ -45,7 +48,7 @@ "pre-commit": "lint-staged" }, "lint-staged": { - "*.{js,jsx,vue,ts,tsx}": [ + "*.{ts,js,json,vue}": [ "vue-cli-service lint", "git add" ] diff --git a/client/web/src/App.vue b/client/web/src/App.vue index 20588709d..b565891d5 100644 --- a/client/web/src/App.vue +++ b/client/web/src/App.vue @@ -3,7 +3,9 @@ + diff --git a/client/web/src/components/panels/Minimap.vue b/client/web/src/components/panels/Minimap.vue index 8f23a1b56..fdd88d338 100644 --- a/client/web/src/components/panels/Minimap.vue +++ b/client/web/src/components/panels/Minimap.vue @@ -1,19 +1,14 @@ - + diff --git a/client/web/src/components/panels/Properties.vue b/client/web/src/components/panels/Properties.vue index 8f23a1b56..fdd88d338 100644 --- a/client/web/src/components/panels/Properties.vue +++ b/client/web/src/components/panels/Properties.vue @@ -1,19 +1,14 @@ - + diff --git a/client/web/src/components/widgets/ItemDivider.vue b/client/web/src/components/widgets/ItemDivider.vue index 26c476dec..4b5f06618 100644 --- a/client/web/src/components/widgets/ItemDivider.vue +++ b/client/web/src/components/widgets/ItemDivider.vue @@ -42,8 +42,7 @@ import { defineComponent } from "vue"; export default defineComponent({ - components: { - }, + components: {}, props: { horizontal: { type: Boolean, default: false }, }, diff --git a/client/web/src/components/widgets/NumberInput.vue b/client/web/src/components/widgets/NumberInput.vue index 3ae6507c6..9c31fbbb8 100644 --- a/client/web/src/components/widgets/NumberInput.vue +++ b/client/web/src/components/widgets/NumberInput.vue @@ -78,7 +78,6 @@ } } } - } @@ -86,9 +85,7 @@ import { defineComponent } from "vue"; export default defineComponent({ - components: { - }, - props: { - }, + components: {}, + props: {}, }); diff --git a/client/web/src/components/widgets/RadioPicker.vue b/client/web/src/components/widgets/RadioPicker.vue index 0cb50cea0..414932571 100644 --- a/client/web/src/components/widgets/RadioPicker.vue +++ b/client/web/src/components/widgets/RadioPicker.vue @@ -44,8 +44,7 @@ import { defineComponent } from "vue"; export default defineComponent({ - components: { - }, + components: {}, props: { initialIndex: { type: Number, required: true }, setIndex: { type: Function, required: false }, @@ -66,7 +65,9 @@ export default defineComponent({ }); }, watch: { - activeIndex() { this.updateActiveIconButton(); }, + activeIndex() { + this.updateActiveIconButton(); + }, }, methods: { // This method may be called by the user of this component by setting a `ref="radioPicker"` attribute and calling `(this.$refs.viewModePicker as typeof RadioPicker).setActive(...)` diff --git a/client/web/src/components/window/footer-bar/FooterBar.vue b/client/web/src/components/window/footer-bar/FooterBar.vue index 6c10f29b9..a05fcaa1e 100644 --- a/client/web/src/components/window/footer-bar/FooterBar.vue +++ b/client/web/src/components/window/footer-bar/FooterBar.vue @@ -69,5 +69,4 @@ export default defineComponent({ InputHint, }, }); - diff --git a/client/web/src/components/window/footer-bar/InputHint.vue b/client/web/src/components/window/footer-bar/InputHint.vue index c80813ce0..c0aaac5cc 100644 --- a/client/web/src/components/window/footer-bar/InputHint.vue +++ b/client/web/src/components/window/footer-bar/InputHint.vue @@ -1,7 +1,7 @@