初始化奇妙小屏幕控制器项目

This commit is contained in:
2026-09-08 22:56:52 +08:00
commit 8d368de3b5
491 changed files with 67678 additions and 0 deletions
@@ -0,0 +1,25 @@
export function createLatchedDraftState(allowedKeys) {
const allowed = new Set(allowedKeys);
const modified = new Set();
return Object.freeze({
mark(key) {
if (!allowed.has(key)) throw new Error(`Unknown draft field: ${key}`);
const wasModified = modified.has(key);
modified.add(key);
return !wasModified;
},
clear() {
modified.clear();
},
has(key) {
return modified.has(key);
},
get dirty() {
return modified.size > 0;
},
keys() {
return [...modified];
},
});
}