diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js new file mode 100644 index 000000000..6ad19287a --- /dev/null +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js @@ -0,0 +1,35 @@ +import js from '@eslint/js' +import globals from 'globals' +import tseslint from 'typescript-eslint' +import { defineConfig, globalIgnores } from 'eslint/config' + +export default defineConfig([ + globalIgnores(['dist', 'test']), + { + files: ['**/*.{ts,tsx}'], + extends: [ + js.configs.recommended, + tseslint.configs.recommended + ], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^(_|set)', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, + }, +]) diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs deleted file mode 100644 index bb4196056..000000000 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs +++ /dev/null @@ -1,37 +0,0 @@ -import js from '@eslint/js'; -import typescriptParser from '@typescript-eslint/parser'; -import tseslint from '@typescript-eslint/eslint-plugin'; -import { FlatCompat } from "@eslint/eslintrc"; - -const compat = new FlatCompat({ - recommendedConfig: js.configs.recommended -}); - -export default [ - ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'), - { - files: ['**/*.ts', '**/*.tsx'], - languageOptions: { - globals: { - browser: true, - es2021: true, - jasmine: true, - }, - parser: typescriptParser, - parserOptions: { - ecmaVersion: 12, - sourceType: 'module', - }, - }, - plugins: { - '@typescript-eslint': tseslint, - }, - rules: { - '@typescript-eslint/no-inferrable-types': 'off', - '@typescript-eslint/no-explicit-any': 'off', - }, - }, - { - ignores: ['dist', 'test'] - } -]; diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json index f010a517f..59582f31d 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json @@ -15,35 +15,35 @@ "scripts": { "start": "concurrently -k -r \"tsc --watch\" \"vite\"", "build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build", - "start:build": "web-dev-server --root-dir dist --app-index index.html --open", + "start:build": "vite preview --open", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, "dependencies": { "@vaadin/router": "^2.0.0", - "lit": "^3.3.0", - "typescript": "~5.8.3", + "lit": "^3.3.2", + "typescript": "^5.9.3", "igniteui-webcomponents": "~7.1.0" }, "devDependencies": { + "@eslint/js": "^9.39.4", "@babel/preset-env": "^7.28.3", - "@typescript-eslint/eslint-plugin": "^8.46.0", - "@typescript-eslint/parser": "^8.46.0", - "@web/dev-server": "^0.4.6", + "@vitest/browser-playwright": "^4.1.0", "babel-plugin-template-html-minifier": "^4.1.0", "concurrently": "^9.2.1", "deepmerge": "^4.3.1", - "eslint": "^9.20.0", - "eslint-plugin-lit": "^2.1.1", + "eslint": "^9.39.4", + "eslint-plugin-lit": "^2.2.1", + "globals": "^17.4.0", "igniteui-cli": "~14.8.0", - "playwright": "^1.55.1", - "rimraf": "^6.0.1", + "playwright": "^1.58.2", + "rimraf": "^6.1.3", "source-map": "^0.7.6", "tslib": "^2.8.1", - "vite": "^7.1.16", - "vite-plugin-pwa": "^1.0.3", - "vite-plugin-static-copy": "^3.1.3", - "vitest": "^3.2.4", - "@vitest/browser": "^3.2.4" + "typescript-eslint": "^8.57.0", + "vite": "^7.0.0", + "vite-plugin-pwa": "^1.2.0", + "vite-plugin-static-copy": "^4.0.1", + "vitest": "^4.1.0" } } diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts index 7c3e11950..3335bdfa3 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts @@ -1,4 +1,5 @@ -import { defineConfig } from 'vitest/config'; +import { playwright } from '@vitest/browser-playwright' +import { defineConfig } from 'vitest/config' import { VitePWA } from 'vite-plugin-pwa'; import { viteStaticCopy } from 'vite-plugin-static-copy'; @@ -10,7 +11,7 @@ export default defineConfig({ chunkFileNames: '[hash].js', assetFileNames: '[hash][extname]', }, - onwarn: (warning, warn) => { + onwarn: (warning: any, warn: any) => { if (warning.code === 'THIS_IS_UNDEFINED') return; warn(warning); }, @@ -23,19 +24,15 @@ export default defineConfig({ test: { browser: { enabled: true, - provider: 'playwright', - instances: [ - { - browser: 'chromium' - }, - ], - }, + provider: playwright(), + instances: [{ browser: 'chromium' }] + } }, plugins: [ /** Copy static assets */ viteStaticCopy({ targets: [ - { src: 'src/assets', dest: 'src' } + { src: 'src/assets', dest: '.' } ], silent: true, }), diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs deleted file mode 100644 index 032579273..000000000 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs +++ /dev/null @@ -1,27 +0,0 @@ -// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr'; - -/** Use Hot Module replacement by adding --hmr to the start command */ -const hmr = process.argv.includes('--hmr'); - -export default /** @type {import('@web/dev-server').DevServerConfig} */ ({ - open: '/', - /** Use regular watch mode if HMR is not enabled. */ - watch: !hmr, - /** Resolve bare module imports */ - nodeResolve: { - exportConditions: ['browser', 'development'], - }, - - /** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */ - // esbuildTarget: 'auto' - - /** Set appIndex to enable SPA routing */ - appIndex: './index.html', - - plugins: [ - /** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */ - // hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }), - ], - - // See documentation for all available options -}); diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json index 95b5679a4..6aa4e9f23 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json @@ -13,14 +13,14 @@ "./$(dashName).js": "./dist/src/$(dashName).js" }, "scripts": { - "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"", + "start": "tsc && concurrently -k -r \"tsc --watch\" \"vite\"", "build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build", - "start:build": "web-dev-server --root-dir dist --app-index index.html --open", + "start:build": "vite preview --open", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, "dependencies": { - "@vaadin/router": "^1.7.4", + "@vaadin/router": "^2.0.0", "@igniteui/material-icons-extended": "^3.0.2", "igniteui-dockmanager": "^2.1.0", "igniteui-webcomponents": "~7.1.0", @@ -30,28 +30,28 @@ "igniteui-webcomponents-grids": "~7.0.0", "igniteui-webcomponents-inputs": "~7.0.0", "igniteui-webcomponents-layouts": "~7.0.0", - "lit": "^3.2.1", - "typescript": "~5.7.2" + "lit": "^3.3.2", + "typescript": "^5.9.3" }, "devDependencies": { + "@eslint/js": "^9.39.4", "@babel/preset-env": "^7.28.3", - "@typescript-eslint/eslint-plugin": "^8.46.0", - "@typescript-eslint/parser": "^8.46.0", - "@web/dev-server": "^0.4.6", + "@vitest/browser-playwright": "^4.1.0", "babel-plugin-template-html-minifier": "^4.1.0", "concurrently": "^9.2.1", "deepmerge": "^4.3.1", - "eslint": "^9.20.0", - "eslint-plugin-lit": "^2.1.1", + "eslint": "^9.39.4", + "eslint-plugin-lit": "^2.2.1", + "globals": "^17.4.0", "igniteui-cli": "~14.8.0", - "playwright": "^1.55.1", - "rimraf": "^6.0.1", + "playwright": "^1.58.2", + "rimraf": "^6.1.3", "source-map": "^0.7.6", "tslib": "^2.8.1", - "vite": "^7.1.16", - "vite-plugin-pwa": "^1.0.3", - "vite-plugin-static-copy": "^3.1.3", - "vitest": "^3.2.4", - "@vitest/browser": "^3.2.4" + "typescript-eslint": "^8.57.0", + "vite": "^7.0.0", + "vite-plugin-pwa": "^1.2.0", + "vite-plugin-static-copy": "^4.0.1", + "vitest": "^4.1.0" } } diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts index c95254ba8..b7f8d863f 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts +++ b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts @@ -14,7 +14,7 @@ defineComponents( ); @customElement('app-root') -export class App extends LitElement { +export default class App extends LitElement { static styles = css` router-outlet { height: 100%; @@ -35,7 +35,7 @@ export class App extends LitElement { return html` Ignite UI CLI - ${routes.filter((element, index) => index < routes.length - 1).map(i => html` + ${routes.filter((_, index) => index < routes.length - 1).map(i => html` ${i.name}