From 5014a75fbc4242be293b7f2dda62ac43824bd855 Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski <5760249+gdarko@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:33:18 +0200 Subject: [PATCH] Upgrade eslint tooling to v10 and fix linting bugs (#601) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Upgrade eslint 9→10, eslint-config-prettier 9→10, eslint-plugin-vue 9→10 - Upgrade @types/node 20→24 - Migrate from legacy .eslintrc.mjs to flat config eslint.config.mjs - Remove --ext flag from npm test script (dropped in eslint 10) - Fix vue/no-ref-as-operand: add missing .value to ref assignments (5 files) - Fix vue/return-in-computed-property: add default returns (2 files) - Fix vue/no-side-effects-in-computed-properties: move mutation to watcher - Fix vue/no-dupe-keys: remove ref shadowing prop in DomPDFDriver - Fix vue/no-deprecated-slot-attribute: migrate to v-slot syntax (3 files) - Fix vue/require-valid-default-prop: use factory function for array default - Fix vue/no-unused-vars: remove unused slot destructure - Disable vue/no-mutating-props (false positive for Pinia store props) --- .eslintrc.mjs | 14 - eslint.config.mjs | 13 + package.json | 10 +- .../ExchangeRateBulkUpdate.vue | 13 +- .../CreateItemRowTax.vue | 2 +- .../estimate-invoice-common/SalesTax.vue | 1 + resources/scripts/admin/views/SampleTable.vue | 2 +- .../installation/Step3DatabaseConfig.vue | 11 +- .../scripts/admin/views/modules/View.vue | 8 +- .../settings/ExchangeRateProviderSetting.vue | 50 +-- .../admin/views/settings/UpdateAppSetting.vue | 2 +- .../settings/pdf-driver/DomPDFDriver.vue | 2 - .../base-select/composables/useOptions.js | 10 +- .../components/base/BaseFileUploader.vue | 14 +- .../notifications/NotificationItem.vue | 2 +- .../scripts/customer/views/payments/Index.vue | 16 +- yarn.lock | 402 ++++++------------ 17 files changed, 227 insertions(+), 345 deletions(-) delete mode 100644 .eslintrc.mjs create mode 100644 eslint.config.mjs diff --git a/.eslintrc.mjs b/.eslintrc.mjs deleted file mode 100644 index 6f9abf3a..00000000 --- a/.eslintrc.mjs +++ /dev/null @@ -1,14 +0,0 @@ -// .eslintrc.js - -module.exports = { - extends: [ - // add more generic rulesets here, such as: - // 'eslint:recommended', - "plugin:vue/vue3-recommended", - "prettier", - ], - rules: { - // override/add rules settings here, such as: - // 'vue/no-unused-vars': 'error' - }, -}; diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..35f46bfe --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,13 @@ +import pluginVue from 'eslint-plugin-vue' +import eslintConfigPrettier from 'eslint-config-prettier' + +export default [ + ...pluginVue.configs['flat/recommended'], + eslintConfigPrettier, + { + files: ['resources/scripts/**/*.{js,vue}'], + rules: { + 'vue/no-mutating-props': 'off', + }, + }, +] diff --git a/package.json b/package.json index 3c92b336..12746a0e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "watch": "vite build --watch", "build": "vite build", "serve": "vite preview", - "test": "eslint ./resources/scripts --ext .js,.vue" + "test": "eslint ./resources/scripts" }, "devDependencies": { "@tailwindcss/forms": "^0.5.10", @@ -17,9 +17,9 @@ "@tailwindcss/vite": "^4.0.0", "@vitejs/plugin-vue": "^6.0.0", "@vue/compiler-sfc": "^3.5.13", - "eslint": "^9.18.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-vue": "^9.32.0", + "eslint": "^10.0.0", + "eslint-config-prettier": "^10.0.0", + "eslint-plugin-vue": "^10.0.0", "prettier": "^3.4.2", "tailwind-scrollbar": "^4.0.0", "tailwindcss": "^4.0.0" @@ -34,7 +34,7 @@ "@tiptap/pm": "^3.0.0", "@tiptap/starter-kit": "^3.0.0", "@tiptap/vue-3": "^3.0.0", - "@types/node": "^20.11.9", + "@types/node": "^24.0.0", "@vuelidate/components": "^1.2.6", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", diff --git a/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue b/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue index 3e202640..a2bbd0f1 100644 --- a/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue +++ b/resources/scripts/admin/components/currency-exchange-rate/ExchangeRateBulkUpdate.vue @@ -11,7 +11,7 @@ }}

-
+ +
+ + diff --git a/resources/scripts/admin/components/estimate-invoice-common/CreateItemRowTax.vue b/resources/scripts/admin/components/estimate-invoice-common/CreateItemRowTax.vue index 53c02f79..1d262f55 100644 --- a/resources/scripts/admin/components/estimate-invoice-common/CreateItemRowTax.vue +++ b/resources/scripts/admin/components/estimate-invoice-common/CreateItemRowTax.vue @@ -106,7 +106,7 @@ const props = defineProps({ }, taxes: { type: Array, - default: [], + default: () => [], }, total: { type: Number, diff --git a/resources/scripts/admin/components/estimate-invoice-common/SalesTax.vue b/resources/scripts/admin/components/estimate-invoice-common/SalesTax.vue index 6be475cf..ddae749a 100644 --- a/resources/scripts/admin/components/estimate-invoice-common/SalesTax.vue +++ b/resources/scripts/admin/components/estimate-invoice-common/SalesTax.vue @@ -79,6 +79,7 @@ const addressData = computed(() => { address: pick(address, ['address_street_1', 'city', 'state', 'zip']), } } + return null }) const isAddressAvailable = computed(() => { diff --git a/resources/scripts/admin/views/SampleTable.vue b/resources/scripts/admin/views/SampleTable.vue index 322c74c5..58f48f5b 100644 --- a/resources/scripts/admin/views/SampleTable.vue +++ b/resources/scripts/admin/views/SampleTable.vue @@ -37,7 +37,7 @@ -