From 54419f9e7d74e5b672341798f322c2fea3e71b0b Mon Sep 17 00:00:00 2001 From: Maschga <88616799+Maschga@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:10:24 +0200 Subject: [PATCH] chore: Typescript: Rewrite Configs (#21763) --- .prettierrc.js => .prettierrc.ts | 4 +- .storybook/main.js | 12 --- .storybook/main.ts | 10 +++ .storybook/{preview.js => preview.ts} | 9 +- eslint.config.mjs => eslint.config.mts | 0 i18n/.prettierrc | 8 +- jest.config.js | 4 - jest.config.ts | 6 ++ package-lock.json | 94 ++++++++++++++++++++ package.json | 2 + playwright.config.js => playwright.config.ts | 0 vite.config.js => vite.config.ts | 0 vitest.config.js => vitest.config.ts | 0 13 files changed, 121 insertions(+), 28 deletions(-) rename .prettierrc.js => .prettierrc.ts (60%) delete mode 100644 .storybook/main.js create mode 100644 .storybook/main.ts rename .storybook/{preview.js => preview.ts} (87%) rename eslint.config.mjs => eslint.config.mts (100%) delete mode 100644 jest.config.js create mode 100644 jest.config.ts rename playwright.config.js => playwright.config.ts (100%) rename vite.config.js => vite.config.ts (100%) rename vitest.config.js => vitest.config.ts (100%) diff --git a/.prettierrc.js b/.prettierrc.ts similarity index 60% rename from .prettierrc.js rename to .prettierrc.ts index 6077f8584..1a16924c3 100644 --- a/.prettierrc.js +++ b/.prettierrc.ts @@ -1,5 +1,7 @@ +import { type Config } from "prettier"; + export default { printWidth: 100, trailingComma: "es5", plugins: ["prettier-plugin-sh"], -}; +} satisfies Config; diff --git a/.storybook/main.js b/.storybook/main.js deleted file mode 100644 index e510bb12b..000000000 --- a/.storybook/main.js +++ /dev/null @@ -1,12 +0,0 @@ -/** @type { import('@storybook/vue3-vite').StorybookConfig } */ -const config = { - stories: ["../assets/js/**/*.stories.@(js|ts)"], - addons: [ - "@chromatic-com/storybook", - ], - framework: { - name: "@storybook/vue3-vite", - options: {}, - }, -}; -export default config; diff --git a/.storybook/main.ts b/.storybook/main.ts new file mode 100644 index 000000000..4a93224fd --- /dev/null +++ b/.storybook/main.ts @@ -0,0 +1,10 @@ +import { StorybookConfig } from "@storybook/vue3-vite"; + +export default { + stories: ["../assets/js/**/*.stories.@(js|ts)"], + addons: ["@chromatic-com/storybook"], + framework: { + name: "@storybook/vue3-vite", + options: {}, + }, +} satisfies StorybookConfig; diff --git a/.storybook/preview.js b/.storybook/preview.ts similarity index 87% rename from .storybook/preview.js rename to .storybook/preview.ts index 820374fa5..1c51ac1cc 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.ts @@ -1,4 +1,4 @@ -import { setup } from "@storybook/vue3"; +import { type Preview, setup } from "@storybook/vue3"; import "bootstrap/dist/css/bootstrap.min.css"; import smoothscroll from "smoothscroll-polyfill"; import setupI18n from "../assets/js/i18n"; @@ -9,8 +9,7 @@ smoothscroll.polyfill(); watchThemeChanges(); // Setup global parameters -/** @type { import('@storybook/vue3').Preview } */ -const preview = { +export default { parameters: { controls: { matchers: { @@ -32,7 +31,7 @@ const preview = { ], }, }, -}; +} satisfies Preview; setup((app) => { app.config.globalProperties.$hiddenFeatures = () => true; @@ -44,5 +43,3 @@ setup((app) => { template: '', }); }); - -export default preview; diff --git a/eslint.config.mjs b/eslint.config.mts similarity index 100% rename from eslint.config.mjs rename to eslint.config.mts diff --git a/i18n/.prettierrc b/i18n/.prettierrc index 92788ee7b..00c50b6ca 100644 --- a/i18n/.prettierrc +++ b/i18n/.prettierrc @@ -1,6 +1,4 @@ { - "plugins": [ - "prettier-plugin-sort-json" - ], - "jsonRecursiveSort": true -} \ No newline at end of file + "jsonRecursiveSort": true, + "plugins": ["prettier-plugin-sort-json"] +} diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index 07cff4050..000000000 --- a/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -export default { - preset: "@vue/cli-plugin-unit-jest/presets/no-babel", - testMatch: ["**/*.spec.js"], -}; diff --git a/jest.config.ts b/jest.config.ts new file mode 100644 index 000000000..4ab447675 --- /dev/null +++ b/jest.config.ts @@ -0,0 +1,6 @@ +import { Config } from "@jest/types"; + +export default { + preset: "@vue/cli-plugin-unit-jest/presets/no-babel", + testMatch: ["**/*.spec.ts"], +} satisfies Config.InitialOptions; diff --git a/package-lock.json b/package-lock.json index 4f35636aa..2480bcae4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31,6 +31,7 @@ "@chromatic-com/storybook": "^4.2.0-next.1", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.13.0", + "@jest/types": "^29.6.3", "@playwright/test": "^1.55.0", "@storybook/vue3": "^10.0.0-beta.2", "@storybook/vue3-vite": "^10.0.0-beta.2", @@ -58,6 +59,7 @@ "eslint-plugin-vue": "^10.4.0", "globals": "^16.3.0", "happy-dom": "^18.0.1", + "jiti": "^2.5.1", "kill-port": "^2.0.1", "license-compliance": "^3.0.1", "mqtt": "^5.14.1", @@ -2466,6 +2468,37 @@ "node": ">=12" } }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -2985,6 +3018,13 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, "node_modules/@storybook/builder-vite": { "version": "10.0.0-beta.2", "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.0.0-beta.2.tgz", @@ -3236,6 +3276,33 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3315,6 +3382,23 @@ "@types/node": "*" } }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.43.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.43.0.tgz", @@ -7498,6 +7582,16 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/jiti": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.5.1.tgz", + "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/joi": { "version": "17.13.3", "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", diff --git a/package.json b/package.json index 61a50ab04..5de66e09a 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@chromatic-com/storybook": "^4.2.0-next.1", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.13.0", + "@jest/types": "^29.6.3", "@playwright/test": "^1.55.0", "@storybook/vue3": "^10.0.0-beta.2", "@storybook/vue3-vite": "^10.0.0-beta.2", @@ -76,6 +77,7 @@ "eslint-plugin-vue": "^10.4.0", "globals": "^16.3.0", "happy-dom": "^18.0.1", + "jiti": "^2.5.1", "kill-port": "^2.0.1", "license-compliance": "^3.0.1", "mqtt": "^5.14.1", diff --git a/playwright.config.js b/playwright.config.ts similarity index 100% rename from playwright.config.js rename to playwright.config.ts diff --git a/vite.config.js b/vite.config.ts similarity index 100% rename from vite.config.js rename to vite.config.ts diff --git a/vitest.config.js b/vitest.config.ts similarity index 100% rename from vitest.config.js rename to vitest.config.ts