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..15c64eec0 --- /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']), + { + 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..f4fde99e3 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 @@ -21,29 +21,29 @@ }, "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": { "@babel/preset-env": "^7.28.3", - "@typescript-eslint/eslint-plugin": "^8.46.0", - "@typescript-eslint/parser": "^8.46.0", + "@vitest/browser-playwright": "^4.1.0", "@web/dev-server": "^0.4.6", "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..e40b6f9a5 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,13 +24,9 @@ export default defineConfig({ test: { browser: { enabled: true, - provider: 'playwright', - instances: [ - { - browser: 'chromium' - }, - ], - }, + provider: playwright(), + instances: [{ browser: 'chromium' }] + } }, plugins: [ /** Copy static assets */ 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..b72b3e645 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": "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", "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": { "@babel/preset-env": "^7.28.3", - "@typescript-eslint/eslint-plugin": "^8.46.0", - "@typescript-eslint/parser": "^8.46.0", + "@vitest/browser-playwright": "^4.1.0", "@web/dev-server": "^0.4.6", "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}