feat(v2.2): 完成高频读取热路径
This commit is contained in:
47
apps/web/lib/workspace-v22-source.ts
Normal file
47
apps/web/lib/workspace-v22-source.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import type { Bug } from './bug';
|
||||
import type { DevTask } from './dev-task';
|
||||
import type { TestCase } from './test-case';
|
||||
import type { V22WorkspaceData } from './v22-api';
|
||||
import type { VersionPlan } from './version-plan';
|
||||
|
||||
export interface WorkspaceCollections {
|
||||
versionPlans: VersionPlan[];
|
||||
devTasks: DevTask[];
|
||||
testCases: TestCase[];
|
||||
bugs: Bug[];
|
||||
}
|
||||
|
||||
export interface SelectWorkspaceCollectionsInput {
|
||||
v22Loaded: boolean;
|
||||
v22Failed: boolean;
|
||||
v22Data: V22WorkspaceData | null;
|
||||
appData: {
|
||||
plans: VersionPlan[];
|
||||
devTasks: DevTask[];
|
||||
testCases: TestCase[];
|
||||
bugs: Bug[];
|
||||
};
|
||||
}
|
||||
|
||||
export function selectWorkspaceCollections({
|
||||
v22Loaded,
|
||||
v22Failed,
|
||||
v22Data,
|
||||
appData,
|
||||
}: SelectWorkspaceCollectionsInput): WorkspaceCollections {
|
||||
if (v22Loaded && !v22Failed && v22Data) {
|
||||
return {
|
||||
versionPlans: v22Data.versionPlans,
|
||||
devTasks: v22Data.devTasks,
|
||||
testCases: v22Data.testCases,
|
||||
bugs: v22Data.bugs,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
versionPlans: appData.plans,
|
||||
devTasks: appData.devTasks,
|
||||
testCases: appData.testCases,
|
||||
bugs: appData.bugs,
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user