## utils/functions.ts 砍掉一半(622 → 291 行) - trickOrTreat():317 行、八种页面恶搞效果(中文乱码、页面翻转、去掉鼠标……), **全仓零调用**,占这个共享工具文件的一半; - 文件末尾注释掉的 getChromeVersion / isLowVersion / protocol 六行。 ## 其余没有调用方的导出 - services/achievement-metrics.ts 的 RARITIES / OPERATORS —— 和契约的 achievementRaritySchema / achievementOperatorSchema 取值逐字相同,是没人用的第二份; - collab/state.ts 的 hasRequest;以及 resetCollabState,它的注释写着「仅供进程退出或 测试用」,而本仓库不写测试(项目约定),进程退出那条路径也没调过; - contract/language.ts 的 JUDGE_LANGUAGES,注释说「前端用它排语言 tab」——前端并没有, 它排 tab 用的是 constants.ts 里以 ProblemLanguage 为键的 SOURCES / LANGUAGE_SHOW_VALUE (那组映射的完整性 tsc 已经在管); - web 的 useSimplePagination(usePagination 的一层空壳包装)和 updateProblemSetProgress。 扫描口径:三个包全部 .ts / .vue 里逐个导出符号数出现次数,只在定义处出现的算无引用 (.vue 模板里的引用也计入)。剩下 56 个仍无引用的全部是契约里 `z.infer` 派生的一行 类型(46 个请求类型 + 10 个领域类型)—— 它们是在用的 schema 的类型另一半,成体系的 1:1 镜像,删一部分只会让那个文件变得随意,所以不动。 ## 留给你定的一件事 `updateProblemSetProgress` 删掉之后,后端 `PUT /problem-set-progress`(routes/problemset.ts:249) 就没有任何调用方了。题单进度实际是判完之后由 services/problemset.ts 的 recordSolvedProblem 在服务端记账的(schema.ts 里那条注释写明了),这个端点是一条客户端自报进度的平行路径。 没顺手删:删端点是行为变化,而且不能排除有脚本在打它。 tsc、vue-tsc、vite build、单二进制编译、check:routes、check:ast 均通过。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012j1vgeDqay8wKCh8dPgPcH
This commit is contained in:
@@ -69,9 +69,6 @@ export function removeRequest(studentId: number) {
|
||||
return requests.delete(studentId)
|
||||
}
|
||||
|
||||
export function hasRequest(studentId: number) {
|
||||
return requests.has(studentId)
|
||||
}
|
||||
|
||||
/** 按发起时间正序。老师端按等待时长排序展示,不强制先来先到 */
|
||||
export function listRequests() {
|
||||
@@ -136,9 +133,3 @@ export function roomOf(ws: CollabSocket) {
|
||||
return ownerId === undefined ? undefined : rooms.get(ownerId)
|
||||
}
|
||||
|
||||
/** 仅供进程退出或测试用,正常路径不该调 */
|
||||
export function resetCollabState() {
|
||||
requests.clear()
|
||||
teachers.clear()
|
||||
rooms.clear()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user