From 35c660dbf693b60c931e6fdf97129e9a431e5131 Mon Sep 17 00:00:00 2001 From: Thierry Goettelmann Date: Wed, 14 Feb 2024 14:43:23 +0100 Subject: [PATCH] feat(xo-stack): add @core alias to import Core from Web and Lite (#7375) --- .eslintrc.js | 3 ++- @xen-orchestra/lite/tsconfig.app.json | 6 ++++-- @xen-orchestra/lite/vite.config.ts | 1 + @xen-orchestra/web-core/package.json | 5 +++-- @xen-orchestra/web-core/tsconfig.json | 12 ++++++++++++ @xen-orchestra/web/tsconfig.app.json | 13 +++++++++++-- @xen-orchestra/web/vite.config.ts | 1 + 7 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 @xen-orchestra/web-core/tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js index 749b9e18d..aa99ede89 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -65,10 +65,11 @@ module.exports = { typescript: true, 'eslint-import-resolver-custom-alias': { alias: { + '@core': '../web-core/lib', '@': './src', }, extensions: ['.ts'], - packages: ['@xen-orchestra/lite'], + packages: ['@xen-orchestra/lite', '@xen-orchestra/web'], }, }, }, diff --git a/@xen-orchestra/lite/tsconfig.app.json b/@xen-orchestra/lite/tsconfig.app.json index 491e09395..66c66a17f 100644 --- a/@xen-orchestra/lite/tsconfig.app.json +++ b/@xen-orchestra/lite/tsconfig.app.json @@ -1,13 +1,15 @@ { "extends": "@vue/tsconfig/tsconfig.dom.json", - "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "include": ["env.d.ts", "src/**/*", "src/**/*.vue", "../web-core/lib/**/*", "../web-core/lib/**/*.vue"], "exclude": ["src/**/__tests__/*"], "compilerOptions": { "composite": true, "noEmit": true, "baseUrl": ".", + "rootDir": "..", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "@core/*": ["../web-core/lib/*"] } } } diff --git a/@xen-orchestra/lite/vite.config.ts b/@xen-orchestra/lite/vite.config.ts index 40721b7c7..becf4f0a6 100644 --- a/@xen-orchestra/lite/vite.config.ts +++ b/@xen-orchestra/lite/vite.config.ts @@ -23,6 +23,7 @@ export default defineConfig({ resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), + '@core': fileURLToPath(new URL('../web-core/lib', import.meta.url)), }, }, diff --git a/@xen-orchestra/web-core/package.json b/@xen-orchestra/web-core/package.json index d27f0fa5f..c3d9a0a07 100644 --- a/@xen-orchestra/web-core/package.json +++ b/@xen-orchestra/web-core/package.json @@ -10,7 +10,8 @@ } }, "devDependencies": { - "vue": "^3.4.13" + "vue": "^3.4.13", + "@vue/tsconfig": "^0.5.1" }, "homepage": "https://github.com/vatesfr/xen-orchestra/tree/master/@xen-orchestra/web-core", "bugs": "https://github.com/vatesfr/xen-orchestra/issues", @@ -25,6 +26,6 @@ }, "license": "AGPL-3.0-or-later", "engines": { - "node": ">=8.10" + "node": ">=18" } } diff --git a/@xen-orchestra/web-core/tsconfig.json b/@xen-orchestra/web-core/tsconfig.json new file mode 100644 index 000000000..cf57c0518 --- /dev/null +++ b/@xen-orchestra/web-core/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "lib/**/*", "lib/**/*.vue"], + "exclude": ["lib/**/__tests__/*"], + "compilerOptions": { + "noEmit": true, + "baseUrl": ".", + "paths": { + "@core/*": ["./lib/*"] + } + } +} diff --git a/@xen-orchestra/web/tsconfig.app.json b/@xen-orchestra/web/tsconfig.app.json index c1e681642..a6c7ddf5b 100644 --- a/@xen-orchestra/web/tsconfig.app.json +++ b/@xen-orchestra/web/tsconfig.app.json @@ -1,13 +1,22 @@ { "extends": "@vue/tsconfig/tsconfig.dom.json", - "include": ["env.d.ts", "typed-router.d.ts", "src/**/*", "src/**/*.vue"], + "include": [ + "env.d.ts", + "typed-router.d.ts", + "src/**/*", + "src/**/*.vue", + "../web-core/lib/**/*", + "../web-core/lib/**/*.vue" + ], "exclude": ["src/**/__tests__/*"], "compilerOptions": { "composite": true, "noEmit": true, "baseUrl": ".", + "rootDir": "..", "paths": { - "@/*": ["./src/*"] + "@/*": ["./src/*"], + "@core/*": ["../web-core/lib/*"] } } } diff --git a/@xen-orchestra/web/vite.config.ts b/@xen-orchestra/web/vite.config.ts index 0c3ee212f..ecb9d2fc9 100644 --- a/@xen-orchestra/web/vite.config.ts +++ b/@xen-orchestra/web/vite.config.ts @@ -11,6 +11,7 @@ export default defineConfig({ resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)), + '@core': fileURLToPath(new URL('../web-core/lib', import.meta.url)), }, }, })