diff --git a/src/Umbraco.Web.UI.Client/.eslintrc.json b/src/Umbraco.Web.UI.Client/.eslintrc.json index f8a724d5c1..db94153396 100644 --- a/src/Umbraco.Web.UI.Client/.eslintrc.json +++ b/src/Umbraco.Web.UI.Client/.eslintrc.json @@ -52,7 +52,7 @@ "local-rules/enforce-umbraco-external-imports": [ "error", { - "exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", "."] + "exceptions": ["@umbraco-cms", "@open-wc/testing", "@storybook", "msw", ".", "vite"] } ], "local-rules/exported-string-constant-naming": [ diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 50ca5fe648..5ff77195e8 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9,7 +9,8 @@ "version": "14.1.0", "license": "MIT", "workspaces": [ - "./src/packages/dictionary" + "./src/packages/dictionary", + "./src/packages/webhook" ], "dependencies": { "@types/diff": "^5.2.1", @@ -6808,6 +6809,10 @@ "resolved": "src/packages/dictionary", "link": true }, + "node_modules/@umbraco-backoffice/webhook": { + "resolved": "src/packages/webhook", + "link": true + }, "node_modules/@umbraco-ui/uui": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@umbraco-ui/uui/-/uui-1.8.1.tgz", @@ -21168,6 +21173,7 @@ }, "src/packages/dictionary": { "name": "@umbraco-backoffice/dictionary" - } + }, + "src/packages/webhook": {} } } diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 8436d16b66..ee7ba5517e 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -126,7 +126,8 @@ "url": "https://umbraco.com" }, "workspaces": [ - "./src/packages/dictionary" + "./src/packages/dictionary", + "./src/packages/webhook" ], "scripts": { "backoffice:test:e2e": "npx playwright test", diff --git a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts index a4fc6826f8..27243c91ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/dictionary/vite.config.ts @@ -1,5 +1,6 @@ import { defineConfig } from 'vite'; import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; const dist = '../../../dist-cms/packages/dictionary'; @@ -7,16 +8,5 @@ const dist = '../../../dist-cms/packages/dictionary'; rmSync(dist, { recursive: true, force: true }); export default defineConfig({ - build: { - target: 'es2022', - lib: { - entry: ['index.ts', 'manifests.ts', 'umbraco-package.ts'], - formats: ['es'], - }, - outDir: dist, - sourcemap: true, - rollupOptions: { - external: [/^@umbraco/], - }, - }, + ...getDefaultConfig({ dist }), }); diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json b/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json new file mode 100644 index 0000000000..b5e4df3a99 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/package.json @@ -0,0 +1,8 @@ +{ + "name": "@umbraco-backoffice/webhook", + "private": true, + "type": "module", + "scripts": { + "build": "vite build" + } +} \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts new file mode 100644 index 0000000000..4992fa7a97 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/packages/webhook/vite.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from 'vite'; +import { rmSync } from 'fs'; +import { getDefaultConfig } from '../../vite-config-base'; + +const dist = '../../../dist-cms/packages/webhook'; + +// delete the unbundled dist folder +rmSync(dist, { recursive: true, force: true }); + +export default defineConfig({ + ...getDefaultConfig({ dist }), +}); diff --git a/src/Umbraco.Web.UI.Client/src/vite-config-base.ts b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts new file mode 100644 index 0000000000..3095dae448 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/vite-config-base.ts @@ -0,0 +1,23 @@ +import type { UserConfig } from 'vite'; + +interface UmbViteDefaultConfigArgs { + dist: string; + entry?: string[]; +} + +export const getDefaultConfig = (args: UmbViteDefaultConfigArgs): UserConfig => { + return { + build: { + target: 'es2022', + lib: { + entry: args.entry || ['index.ts', 'manifests.ts', 'umbraco-package.ts'], + formats: ['es'], + }, + outDir: args.dist, + sourcemap: true, + rollupOptions: { + external: [/^@umbraco/], + }, + }, + }; +};