FN-5926: break bundled plugin dashboard dependency cycle
Remove direct dashboard package dependencies from bundled plugins while preserving typed dashboard interop. - add a workspace acyclic dependency regression test for all packages and dashboard-bundled plugins - expose dashboard app aliases in dashboard TS/Vite/Vitest configs for plugin interop imports - replace bundled plugin @fusion/dashboard dependencies with local dashboard interop declarations and updated tsconfig path mappings Files changed: .../workspace-dependency-acyclicity.test.ts | 174 +++++++++++++++++++++ packages/dashboard/tsconfig.app.json | 6 +- packages/dashboard/tsconfig.test-check.json | 6 +- packages/dashboard/vite.config.ts | 4 + packages/dashboard/vitest.config.ts | 4 + .../fusion-plugin-cli-printing-press/package.json | 1 - .../src/dashboard-interop.d.ts | 19 +++ .../fusion-plugin-cli-printing-press/tsconfig.json | 7 +- .../fusion-plugin-dependency-graph/package.json | 1 - .../src/dashboard-interop.d.ts | 6 + .../fusion-plugin-dependency-graph/tsconfig.json | 3 +- plugins/fusion-plugin-roadmap/package.json | 1 - .../src/dashboard-interop.d.ts | 19 +++ plugins/fusion-plugin-roadmap/tsconfig.json | 7 +- pnpm-lock.yaml | 9 -- 15 files changed, 248 insertions(+), 19 deletions(-) Fusion-Task-Id: FN-5926 Fusion-Task-Lineage: 1b39c08a-1415-407d-90cc-b3de89af0316
This commit is contained in:
@@ -21,7 +21,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@fusion/core": "workspace:*",
|
||||
"@fusion/dashboard": "workspace:*",
|
||||
"@fusion/plugin-sdk": "workspace:*",
|
||||
"lucide-react": "^0.542.0"
|
||||
},
|
||||
|
||||
@@ -44,3 +44,9 @@ declare module "@fusion/dashboard/app/components/TaskCard" {
|
||||
|
||||
export function TaskCard(props: TaskCardProps): ReactElement;
|
||||
}
|
||||
|
||||
declare module "@fusion/dashboard/app/utils/projectStorage" {
|
||||
export function getScopedItem(baseKey: string, projectId?: string): string | null;
|
||||
export function setScopedItem(baseKey: string, value: string, projectId?: string): void;
|
||||
export function removeScopedItem(baseKey: string, projectId?: string): void;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
"paths": {
|
||||
"@fusion/dashboard/app/components/TaskCard": ["./src/dashboard-interop.d.ts"],
|
||||
"@fusion/dashboard/app/utils/taskStuck": ["./src/dashboard-interop.d.ts"],
|
||||
"@fusion/dashboard/app/plugins/types": ["./src/dashboard-interop.d.ts"]
|
||||
"@fusion/dashboard/app/plugins/types": ["./src/dashboard-interop.d.ts"],
|
||||
"@fusion/dashboard/app/utils/projectStorage": ["./src/dashboard-interop.d.ts"]
|
||||
}
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.d.ts"],
|
||||
|
||||
Reference in New Issue
Block a user