From f3bfbe9cf0c820b6f82bb2ac8f7f0fffaa8c7754 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 6 Apr 2026 16:30:22 +0300 Subject: [PATCH 1/7] feat(igc-ts): update wc templates --- .../projects/_base/files/eslint.config.mjs | 37 ------------------- .../igc-ts/projects/_base/files/package.json | 26 ++++++------- .../projects/_base/files/vite.config.ts | 15 +++----- .../_base_with_home/files/package.json | 26 ++++++------- .../projects/side-nav/files/src/app/app.ts | 4 +- 5 files changed, 34 insertions(+), 74 deletions(-) delete mode 100644 packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs 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..5a35ac554 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 @@ -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} From a34bb3f35af164ef660a6e6dbe0e095324c4f94a Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Mon, 6 Apr 2026 17:13:32 +0300 Subject: [PATCH 2/7] feat(igc-ts): update templates --- .../projects/_base/files/eslint.config.js | 35 +++++++++++++++++++ .../_base_with_home/files/package.json | 4 +-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js 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_with_home/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json index 5a35ac554..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", From f3b08b57f2c72ca0193a72c34dbfe8b2aa6607fe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Apr 2026 14:24:19 +0000 Subject: [PATCH 3/7] feat(igc-ts): replace web-dev-server with vite preview for start:build Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/95ab942c-4353-430b-a3b1-9ae59bb279f9 Co-authored-by: Hristo313 <57346540+Hristo313@users.noreply.github.com> --- .../webcomponents/igc-ts/projects/_base/files/package.json | 3 +-- .../igc-ts/projects/_base_with_home/files/package.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) 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 f4fde99e3..543281dc9 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,7 +15,7 @@ "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", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, @@ -28,7 +28,6 @@ "devDependencies": { "@babel/preset-env": "^7.28.3", "@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", 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 b72b3e645..20f785fdd 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 @@ -15,7 +15,7 @@ "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", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, @@ -36,7 +36,6 @@ "devDependencies": { "@babel/preset-env": "^7.28.3", "@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", From a018ec1c16952a11e1bf6a5e6a081054e230f7fa Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 7 Apr 2026 14:32:47 +0000 Subject: [PATCH 4/7] feat(igc-ts): remove web-dev-server config and add --open to vite preview Agent-Logs-Url: https://github.com/IgniteUI/igniteui-cli/sessions/d987f732-ccda-4acf-82e1-83900824d53c Co-authored-by: Hristo313 <57346540+Hristo313@users.noreply.github.com> --- .../igc-ts/projects/_base/files/package.json | 2 +- .../_base/files/web-dev-server.config.mjs | 27 ------------------- .../_base_with_home/files/package.json | 2 +- 3 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 packages/cli/templates/webcomponents/igc-ts/projects/_base/files/web-dev-server.config.mjs 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 543281dc9..dccde28e5 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,7 +15,7 @@ "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": "vite preview", + "start:build": "vite preview --open", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, 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 20f785fdd..7c0691c83 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 @@ -15,7 +15,7 @@ "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": "vite preview", + "start:build": "vite preview --open", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && vitest run" }, From ae2d385a44389692704a910b3dba21b4acd82b0e Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Tue, 7 Apr 2026 18:05:24 +0300 Subject: [PATCH 5/7] feat(igc-ts): update vite static copy plugin path --- .../webcomponents/igc-ts/projects/_base/files/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e40b6f9a5..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 @@ -32,7 +32,7 @@ export default defineConfig({ /** Copy static assets */ viteStaticCopy({ targets: [ - { src: 'src/assets', dest: 'src' } + { src: 'src/assets', dest: '.' } ], silent: true, }), From 1b4705415db5d500be9ad54d067af4e82768180d Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Wed, 8 Apr 2026 11:18:09 +0300 Subject: [PATCH 6/7] feat(igc-ts): resolve comments --- .../webcomponents/igc-ts/projects/_base/files/eslint.config.js | 2 +- .../igc-ts/projects/_base_with_home/files/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 index 15c64eec0..6ad19287a 100644 --- 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 @@ -4,7 +4,7 @@ import tseslint from 'typescript-eslint' import { defineConfig, globalIgnores } from 'eslint/config' export default defineConfig([ - globalIgnores(['dist']), + globalIgnores(['dist', 'test']), { files: ['**/*.{ts,tsx}'], extends: [ 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 7c0691c83..c8d92ed2c 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,7 +13,7 @@ "./$(dashName).js": "./dist/src/$(dashName).js" }, "scripts": { - "start": "concurrently -k -r \"tsc --watch\" \"vite\"", + "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": "vite preview --open", "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", From 5defe2cbba768d9852fd7a23fa869cc123d28e6d Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Wed, 8 Apr 2026 11:30:31 +0300 Subject: [PATCH 7/7] feat(igc-ts): resolve comments --- .../webcomponents/igc-ts/projects/_base/files/package.json | 1 + .../igc-ts/projects/_base_with_home/files/package.json | 1 + 2 files changed, 2 insertions(+) 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 dccde28e5..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 @@ -26,6 +26,7 @@ "igniteui-webcomponents": "~7.1.0" }, "devDependencies": { + "@eslint/js": "^9.39.4", "@babel/preset-env": "^7.28.3", "@vitest/browser-playwright": "^4.1.0", "babel-plugin-template-html-minifier": "^4.1.0", 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 c8d92ed2c..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 @@ -34,6 +34,7 @@ "typescript": "^5.9.3" }, "devDependencies": { + "@eslint/js": "^9.39.4", "@babel/preset-env": "^7.28.3", "@vitest/browser-playwright": "^4.1.0", "babel-plugin-template-html-minifier": "^4.1.0",