mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-19 17:38:19 +08:00
workspace: use esnext set operations
This commit is contained in:
12 files changed
+28
-43
No files matched your search
@@ -313,7 +313,7 @@ export async function getListVnodes(domainId: string, ddocs: any, getHidden = fa
|
||||
const vnode = await getVnode(domainId, ddoc.parentType, ddoc.parentId.toString());
|
||||
res[ddoc.parentType] ||= {};
|
||||
if (!getHidden && vnode.hidden) return;
|
||||
if (vnode.assign?.length && Set.intersection(vnode.assign, assign).size) return;
|
||||
if (vnode.assign?.length && new Set(vnode.assign).intersection(new Set(assign)).size) return;
|
||||
res[ddoc.parentType][ddoc.parentId] = vnode;
|
||||
}
|
||||
await Promise.all(ddocs.map((ddoc) => task(ddoc)));
|
||||
@@ -325,7 +325,7 @@ export function checkVNodeVisibility(type: number, vnode: any, user: User) {
|
||||
if (vnode.hidden && !user.own(vnode) && !user.hasPerm(PERM.PERM_VIEW_PROBLEM_HIDDEN)) return false;
|
||||
}
|
||||
if ([document.TYPE_CONTEST, document.TYPE_TRAINING].includes(type as any)) {
|
||||
if (!user.own(vnode) && vnode.assign?.length && !Set.intersection(vnode.assign, user.group).size) return false;
|
||||
if (!user.own(vnode) && vnode.assign?.length && !new Set(vnode.assign).intersection(new Set(user.group)).size) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -63,30 +63,24 @@ export function getPids(dag: TrainingNode[]) {
|
||||
}
|
||||
|
||||
export function isDone(node: TrainingNode, doneNids: Set<number> | number[], donePids: Set<number> | number[]) {
|
||||
return (Set.isSuperset(new Set(doneNids), new Set(node.requireNids))
|
||||
&& Set.isSuperset(new Set(donePids), new Set(node.pids)));
|
||||
return new Set(doneNids).isSupersetOf(new Set(node.requireNids))
|
||||
&& new Set(donePids).isSupersetOf(new Set(node.pids));
|
||||
}
|
||||
|
||||
export function isProgress(node: TrainingNode, doneNids: Set<number> | number[], donePids: Set<number> | number[], progPids: Set<number> | number[]) {
|
||||
return (Set.isSuperset(new Set(doneNids), new Set(node.requireNids))
|
||||
&& !Set.isSuperset(new Set(donePids), new Set(node.pids))
|
||||
&& Set.intersection(
|
||||
Set.union(new Set(donePids), new Set(progPids)),
|
||||
new Set(node.pids),
|
||||
).size);
|
||||
return new Set(doneNids).isSupersetOf(new Set(node.requireNids))
|
||||
&& !new Set(donePids).isSupersetOf(new Set(node.pids))
|
||||
&& new Set(donePids).union(new Set(progPids)).intersection(new Set(node.pids)).size;
|
||||
}
|
||||
|
||||
export function isOpen(node: TrainingNode, doneNids: Set<number> | number[], donePids: Set<number> | number[], progPids: Set<number> | number[]) {
|
||||
return (Set.isSuperset(new Set(doneNids), new Set(node.requireNids))
|
||||
&& !Set.isSuperset(new Set(donePids), new Set(node.pids))
|
||||
&& !Set.intersection(
|
||||
Set.union(new Set(donePids), new Set(progPids)),
|
||||
new Set(node.pids),
|
||||
).size);
|
||||
return new Set(doneNids).isSupersetOf(new Set(node.requireNids))
|
||||
&& !new Set(donePids).isSupersetOf(new Set(node.pids))
|
||||
&& !new Set(donePids).union(new Set(progPids)).intersection(new Set(node.pids)).size;
|
||||
}
|
||||
|
||||
export const isInvalid = (node: TrainingNode, doneNids: Set<number> | number[]) =>
|
||||
!Set.isSuperset(new Set(doneNids), new Set(node.requireNids));
|
||||
!new Set(doneNids).isSupersetOf(new Set(node.requireNids));
|
||||
|
||||
export async function count(domainId: string, query: Filter<TrainingDoc>) {
|
||||
return await document.count(domainId, document.TYPE_TRAINING, query);
|
||||
|
||||
Reference in new issue
Block a user