Skip to content

Commit b9036c8

Browse files
a-klosrenovate-bot
andauthored
chore: align ESLint with @vue/eslint-config-typescript v14 (#72)
This PR contains the following updates: | Package | Change | Age | Confidence | |---|---|---|---| | [@vue/eslint-config-typescript](https://redirect.github.com/vuejs/eslint-config-typescript) | [`^11.0.3` -> `^14.0.0`](https://renovatebot.com/diffs/npm/@vue%2feslint-config-typescript/11.0.3/14.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vue%2feslint-config-typescript/14.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vue%2feslint-config-typescript/11.0.3/14.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vuejs/eslint-config-typescript (@&#8203;vue/eslint-config-typescript)</summary> ### [`v14.6.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.6.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.5.1...v14.6.0) #### New Features - feat: `allowComponentTypeUnsafety` option to configure the strictness of `no-unsafe-*` rules by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;185](https://redirect.github.com/vuejs/eslint-config-typescript/pull/185) **Full Changelog**: <vuejs/eslint-config-typescript@v14.5.1...v14.6.0> ### [`v14.5.1`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.5.1) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.5.0...v14.5.1) #### Notable Changes - fix: ensure there's only one instance of `eslint-plugin-vue` in the config, to avoid `Cannot redefine plugin "vue"` errors by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;184](https://redirect.github.com/vuejs/eslint-config-typescript/pull/184) **Full Changelog**: <vuejs/eslint-config-typescript@v14.5.0...v14.5.1> ### [`v14.5.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.5.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.4.0...v14.5.0) #### What's Changed - chore(deps): update dependency `vue-eslint-parser` to v10 by [@&#8203;renovate](https://redirect.github.com/renovate) in [#&#8203;157](https://redirect.github.com/vuejs/eslint-config-typescript/pull/157) - chore(deps): expand peer dependency `eslint-plugin-vue` version range to allow v10 by [@&#8203;renovate](https://redirect.github.com/renovate) in [#&#8203;156](https://redirect.github.com/vuejs/eslint-config-typescript/pull/156) **Full Changelog**: <vuejs/eslint-config-typescript@v14.4.0...v14.5.0> ### [`v14.4.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.4.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.3.0...v14.4.0) #### What's Changed - A `tsSyntaxInTemplates` configuration field, so that linting can be sped up by disabling it by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;142](https://redirect.github.com/vuejs/eslint-config-typescript/pull/142) - Proper handling of [the `extends` field, which is supported in `typescript-eslint`](https://typescript-eslint.io/packages/typescript-eslint#flat-config-extends), fixes [#&#8203;136](https://redirect.github.com/vuejs/eslint-config-typescript/issues/136) by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;143](https://redirect.github.com/vuejs/eslint-config-typescript/pull/143) **Full Changelog**: <vuejs/eslint-config-typescript@v14.3.0...v14.4.0> ### [`v14.3.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.3.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.2.0...v14.3.0) #### New Features - A completely new approach to set up the ESLint configurations with helpers like `defineConfigWithVueTs` and `vueTsConfigs`. Please read [the documentation](https://redirect.github.com/vuejs/eslint-config-typescript/tree/v14.3.0?tab=readme-ov-file#usage) for more details. With this new API set, you can easily override type-aware linting rules without worrying its position in the config array. Therefore there would be fewer mysterious errors or slowdown in a heavily customized project. > \[!NOTE] > The old style `...vueTsEslintConfig()` still works, there's no need to update to the new style if that has been working well in your project. #### Bug Fixes - fix: typo in index.ts by [@&#8203;aparajita](https://redirect.github.com/aparajita) in [#&#8203;128](https://redirect.github.com/vuejs/eslint-config-typescript/pull/128) #### New Contributors - [@&#8203;aparajita](https://redirect.github.com/aparajita) made their first contribution in [#&#8203;128](https://redirect.github.com/vuejs/eslint-config-typescript/pull/128) **Full Changelog**: <vuejs/eslint-config-typescript@v14.2.0...v14.3.0> ### [`v14.2.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.2.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.4...v14.2.0) #### What's Changed - fix: add absolute path for reading file contents, fix `rootDir` issue by [@&#8203;markieo1](https://redirect.github.com/markieo1) in [#&#8203;108](https://redirect.github.com/vuejs/eslint-config-typescript/pull/108) - ~~feat: add a `defineConfig` utility function and use it in examples by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;117](https://redirect.github.com/vuejs/eslint-config-typescript/pull/117)~~ Don't use this feature yet, it's under active refactoring for better usability. #### New Contributors - [@&#8203;markieo1](https://redirect.github.com/markieo1) made their first contribution in [#&#8203;108](https://redirect.github.com/vuejs/eslint-config-typescript/pull/108) **Full Changelog**: <vuejs/eslint-config-typescript@v14.1.4...v14.2.0> ### [`v14.1.4`](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.3...v14.1.4) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.3...v14.1.4) ### [`v14.1.3`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.1.3) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.2...v14.1.3) #### What's Changed - docs: add missing curly bracket in example config by [@&#8203;henribru](https://redirect.github.com/henribru) in [#&#8203;93](https://redirect.github.com/vuejs/eslint-config-typescript/pull/93) - fix: skip typechecking cjs and mjs files by [@&#8203;henribru](https://redirect.github.com/henribru) in [#&#8203;94](https://redirect.github.com/vuejs/eslint-config-typescript/pull/94) #### New Contributors - [@&#8203;henribru](https://redirect.github.com/henribru) made their first contribution in [#&#8203;93](https://redirect.github.com/vuejs/eslint-config-typescript/pull/93) **Full Changelog**: <vuejs/eslint-config-typescript@v14.1.2...v14.1.3> ### [`v14.1.2`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.1.2) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.1...v14.1.2) #### Bug Fixes - Print more friendly error messages if the user provides a non-existent configuration name to `extends`. **Full Changelog**: <vuejs/eslint-config-typescript@v14.1.1...v14.1.2> ### [`v14.1.1`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.1.1) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.1.0...v14.1.1) #### Bug Fixes - Fixed [#&#8203;91](https://redirect.github.com/vuejs/eslint-config-typescript/issues/91) > `TypeError: Config "typescript-eslint/disable-type-checked": Key "files": Expected value to be a non-empty array"` **Full Changelog**: <vuejs/eslint-config-typescript@v14.1.0...v14.1.1> ### [`v14.1.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.1.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.0.1...v14.1.0) #### New Features - feat: simplify the `*TypeChecked` configs by providing a meaningful and performant default by [@&#8203;haoqunjiang](https://redirect.github.com/haoqunjiang) in [#&#8203;89](https://redirect.github.com/vuejs/eslint-config-typescript/pull/89) #### Bug Fixes - fix: add the missing dot to extraFileExtensions by [@&#8203;jfrs](https://redirect.github.com/jfrs) in [#&#8203;90](https://redirect.github.com/vuejs/eslint-config-typescript/pull/90) #### New Contributors - [@&#8203;jfrs](https://redirect.github.com/jfrs) made their first contribution in [#&#8203;90](https://redirect.github.com/vuejs/eslint-config-typescript/pull/90) **Full Changelog**: <vuejs/eslint-config-typescript@v14.0.1...v14.1.0> ### [`v14.0.1`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.0.1) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v14.0.0...v14.0.1) #### Bugfixes - Fixed an occasional bug that when using with npm or yarn v1, an `invalid ecmaVersion` error would be thrown if the wrong version of `estree` is hoisted to the `node_modules` root. Fixes [#&#8203;87](https://redirect.github.com/vuejs/eslint-config-typescript/issues/87). [\[aae95d6\]](https://redirect.github.com/vuejs/eslint-config-typescript/commit/aae95d6) #### New Contributors - [@&#8203;bmulholland](https://redirect.github.com/bmulholland) made their first contribution in [#&#8203;84](https://redirect.github.com/vuejs/eslint-config-typescript/pull/84) - [@&#8203;50Wliu](https://redirect.github.com/50Wliu) made their first contribution in [#&#8203;86](https://redirect.github.com/vuejs/eslint-config-typescript/pull/86) **Full Changelog**: <vuejs/eslint-config-typescript@v14.0.0...v14.0.1> ### [`v14.0.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v14.0.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v13.0.0...v14.0.0) #### What's Changed - Added support for ESLint Flat Config [#&#8203;81](https://redirect.github.com/vuejs/eslint-config-typescript/pull/81) - Dropped support for the legacy `.eslintrc*` configuration format. If you need that, please stay on version 13, which is also tagged as [`@vue/eslint-config-typescript@legacy-eslintrc`](https://www.npmjs.com/package/@&#8203;vue/eslint-config-typescript/v/legacy-eslintrc). - The default configuration now extends from [`tseslint.configs.recommended`](https://typescript-eslint.io/users/configs#recommended) instead of `eslint-recommended`. **Full Changelog**: <vuejs/eslint-config-typescript@v13.0.0...v14.0.0> ### [`v13.0.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v13.0.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v12.0.0...v13.0.0) #### Notable Changes `typescript-eslint` is upgraded to v7.x. The full release notes can be found in their release blog: <https://typescript-eslint.io/blog/announcing-typescript-eslint-v7> It's a small major release that only updates some peer dependency version requirements: - Requires Node.js >= 18.18, TypeScript >= 4.7.4, ESLint >= 8.56 ### [`v12.0.0`](https://redirect.github.com/vuejs/eslint-config-typescript/releases/tag/v12.0.0) [Compare Source](https://redirect.github.com/vuejs/eslint-config-typescript/compare/v11.0.3...v12.0.0) #### Notable Changes `typescript-eslint` is upgraded to v6.x. The full release notes can be found in their release blog: <https://typescript-eslint.io/blog/announcing-typescript-eslint-v6/> Here are some notable changes you might encounter when upgrading `@vue/eslint-config-typescript` from v11 to v12: - Requires Node.js >= 16, TypeScript >= 4.2.4, ESLint >= 7 - The default config: - [`valid-typeof` rule is re-enabled because it's not always covered by TypeScript](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/5381) - The `recommended` config: - No longer includes stylistic rules; because the upstream `@typescript-eslint/eslint-plugin` has split them into standalone configs. - Some rules' severity levels are changed from `warn` to `error`, such as `@typescript-eslint/no-unused-vars`. - A more complete list of changes can be found at <https://redirect.github.com/typescript-eslint/typescript-eslint/discussions/6014> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am" in timezone UTC, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4wIiwidXBkYXRlZEluVmVyIjoiNDEuODIuNiIsInRhcmdldEJyYW5jaCI6ImRlcHMtbWFpbiIsImxhYmVscyI6WyJtYWpvci11cGRhdGUiLCJub2RlanMiXX0=--> --------- Co-authored-by: Renovate Bot <renovate@whitesourcesoftware.com>
1 parent 61856f0 commit b9036c8

23 files changed

Lines changed: 5103 additions & 2760 deletions

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ The *Tilt* UI is available at [http://localhost:10350/](http://localhost:10350/)
238238

239239
If you want to access *Qdrant* etc. just click the resource in the UI. In the upper corner will be the link, to access the resource.
240240

241+
> 📝 NOTE: For frontend live updates with Tilt see [Frontend live updates with Tilt](./services/frontend/README.md#live-updates-with-tilt)
242+
241243
To enable debugging, start tilt with the following command:
242244

243245
```shell

Tiltfile

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ docker_build(
163163
sync(core_library_context+"/rag-core-lib", "/app/libs/rag-core-lib"),
164164
],
165165
dockerfile=backend_context + "/Dockerfile",
166-
ignore=["infrastructure/"],
166+
ignore=[
167+
"infrastructure/",
168+
"services/frontend/.nx/",
169+
"services/frontend/tmp/",
170+
],
167171
)
168172

169173
# Add linter trigger
@@ -203,7 +207,11 @@ docker_build(
203207
sync(mcp_context, "/app/services/mcp-server"),
204208
],
205209
dockerfile=mcp_context + "/Dockerfile",
206-
ignore=["infrastructure/"],
210+
ignore=[
211+
"infrastructure/",
212+
"services/frontend/.nx/",
213+
"services/frontend/tmp/",
214+
],
207215
)
208216

209217
# Add linter trigger
@@ -317,7 +325,12 @@ docker_build(
317325
frontend_image_name,
318326
".",
319327
dockerfile="./services/frontend/apps/chat-app/Dockerfile",
320-
live_update=[sync("./services/frontend", "/usr/src/app")],
328+
# Sync only built assets into the writable Nginx html volume.
329+
# Avoid syncing sources/.nx into read-only paths in the runtime image.
330+
live_update=[
331+
sync("./services/frontend/dist/apps/chat-app", "/usr/share/nginx/html"),
332+
sync("./services/frontend/dist/libs", "/usr/share/nginx/html/libs"),
333+
],
321334
ignore=["infrastructure/"],
322335
)
323336

@@ -331,7 +344,11 @@ docker_build(
331344
adminfrontend_image_name,
332345
".",
333346
dockerfile="services/frontend/apps/admin-app/Dockerfile",
334-
live_update=[sync("./services/frontend", "/usr/src/app")],
347+
# Sync only built assets into the writable Nginx html volume.
348+
live_update=[
349+
sync("./services/frontend/dist/apps/admin-app", "/usr/share/nginx/html"),
350+
sync("./services/frontend/dist/libs", "/usr/share/nginx/html/libs"),
351+
],
335352
ignore=["infrastructure/"],
336353
)
337354

eslint.config.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Root ESLint flat config
2+
// Delegate to the frontend flat config by re-exporting it directly so Nx (running from repo root)
3+
// picks up the correct Vue + TypeScript parsers and rules.
4+
import frontendConfig from './services/frontend/eslint.config.mjs'
5+
6+
export default frontendConfig

package-lock.json

Lines changed: 14 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

services/frontend/.dockerignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
node_modules
2+
.nx
3+
dist
4+
coverage

services/frontend/.eslintignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

services/frontend/.eslintrc.cjs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/* Classic ESLint config for Nx executor compatibility (ESLint 8/9)
2+
* Mirrors the flat config to ensure proper parsing of TS and Vue files
3+
*/
4+
5+
module.exports = {
6+
root: true,
7+
ignorePatterns: ['dist', 'coverage', 'node_modules'],
8+
overrides: [
9+
// TypeScript & JavaScript files
10+
{
11+
files: ['**/*.{ts,tsx,js,cjs,mjs,mts,cts}'],
12+
parser: '@typescript-eslint/parser',
13+
parserOptions: {
14+
ecmaVersion: 'latest',
15+
sourceType: 'module',
16+
project: null,
17+
tsconfigRootDir: __dirname,
18+
},
19+
plugins: ['@typescript-eslint', '@nx'],
20+
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
21+
rules: {
22+
'no-undef': 'off',
23+
'@nx/enforce-module-boundaries': [
24+
'error',
25+
{
26+
enforceBuildableLibDependency: true,
27+
allow: [],
28+
depConstraints: [
29+
{
30+
sourceTag: '*',
31+
onlyDependOnLibsWithTags: ['*'],
32+
},
33+
],
34+
},
35+
],
36+
},
37+
},
38+
39+
// Vue Single File Components
40+
{
41+
files: ['**/*.vue'],
42+
parser: 'vue-eslint-parser',
43+
parserOptions: {
44+
parser: '@typescript-eslint/parser',
45+
ecmaVersion: 'latest',
46+
sourceType: 'module',
47+
extraFileExtensions: ['.vue'],
48+
},
49+
plugins: ['vue', '@typescript-eslint'],
50+
extends: ['plugin:vue/vue3-recommended', 'plugin:@typescript-eslint/recommended'],
51+
rules: {
52+
'vue/multi-word-component-names': 'off',
53+
},
54+
env: {
55+
'vue/setup-compiler-macros': true,
56+
},
57+
},
58+
59+
// Declaration files
60+
{
61+
files: ['**/*.d.ts'],
62+
parser: '@typescript-eslint/parser',
63+
parserOptions: {
64+
ecmaVersion: 'latest',
65+
sourceType: 'module',
66+
},
67+
rules: {},
68+
},
69+
],
70+
}

services/frontend/.eslintrc.json

Lines changed: 4 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,6 @@
11
{
2-
"root": true,
3-
"ignorePatterns": ["**/*"],
4-
"plugins": ["@nx"],
5-
"overrides": [
6-
{
7-
"files": ["*.ts", "*.tsx", "*.js", "*.jsx", "*.vue"],
8-
"rules": {
9-
"@nx/enforce-module-boundaries": [
10-
"error",
11-
{
12-
"enforceBuildableLibDependency": true,
13-
"allow": [],
14-
"depConstraints": [
15-
{
16-
"sourceTag": "*",
17-
"onlyDependOnLibsWithTags": ["*"]
18-
}
19-
]
20-
}
21-
]
22-
}
23-
},
24-
{
25-
"files": ["*.ts", "*.tsx"],
26-
"extends": ["plugin:@nx/typescript"],
27-
"rules": {}
28-
},
29-
{
30-
"files": ["*.js", "*.jsx"],
31-
"extends": ["plugin:@nx/javascript"],
32-
"rules": {}
33-
},
34-
{
35-
"files": ["*.vue"],
36-
"extends": [
37-
"plugin:vue/vue3-essential",
38-
"@vue/eslint-config-typescript"
39-
],
40-
"rules": {}
41-
}
42-
]
2+
// Legacy .eslintrc placeholder — actual config is in eslint.config.mjs (ESLint 9 flat config)
3+
"root": true,
4+
// Do NOT ignore everything; let flat config handle files
5+
"ignorePatterns": []
436
}

services/frontend/README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Seperated in 2 appilcations `chat-app` and `admin-app`
2020
## How to run it
2121

2222
### Prepare
23+
2324
- Node : Version >22.12.0
2425
- Fomatter : Vue-Official & Basic Ts formatter
2526

@@ -40,6 +41,16 @@ npx nx serve chat-app:serve
4041
npx nx serve admin-app:serve
4142
```
4243

44+
### Live updates with Tilt
45+
46+
When running via Tilt, the frontend containers use Nginx and Tilt syncs the built assets (Vite `dist/`) directly into `/usr/share/nginx/html` inside the pod. For live updates while editing code, run a build in watch mode and Tilt will sync changes automatically:
47+
48+
```bash
49+
# From services/frontend
50+
npx nx run admin-app:build --watch
51+
npx nx run chat-app:build --watch
52+
```
53+
4354
### Test
4455

4556
To run unit test, you can run this command at the root of your workspace.
Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,4 @@
11
{
2-
"extends": [
3-
"plugin:vue/vue3-essential",
4-
"eslint:recommended",
5-
"@vue/eslint-config-typescript",
6-
"../../.eslintrc.json"
7-
],
8-
"ignorePatterns": ["!**/*"],
9-
"overrides": [
10-
{
11-
"files": ["*.ts", "*.tsx", "*.js", "*.jsx", "*.vue"],
12-
"rules": {
13-
"vue/multi-word-component-names": "off"
14-
}
15-
}
16-
]
2+
"extends": ["../../.eslintrc.cjs"],
3+
"ignorePatterns": ["!**/*"]
174
}

0 commit comments

Comments
 (0)