work addition started

This commit is contained in:
Seth Trowbridge 2025-07-28 17:15:54 -04:00
parent bd0ff30f2a
commit 32923dee59
2 changed files with 22 additions and 16 deletions

View File

@ -82,14 +82,12 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
// Apply passes
/** @type {Record<string, TYPES.Pass>} */
const PassList = {};
const PassList = pass;
for(let passID in pass)
{
const [passName] = pass[passID];
/** @type {TYPES.Pass} */
PassList[passID] = {
name: passName,
const passObj = {
name: pass[passID][0],
path:passID,
async load(){
@ -118,11 +116,19 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
condensedWork.push(userObject);
});
let passCheck = PartList[partID].pass.get(this);
const partObj = PartList[partID]
let passCheck = partObj.pass.get(this);
if(!passCheck)
{
passCheck = {time:0, work:[]}
PartList[partID].pass.set(this, passCheck);
passCheck = {time:0, work:[], make(user, data)
{
this.time = Date.now();
this.work.push(/** @type {TYPES.Work}*/([user, data, this.time]));
partObj.make.forEach((arg)=>{Scan(arg, passObj)});
partObj.need.forEach((arg)=>{Scan(arg, passObj)});
}}
partObj.pass.set(this, passCheck);
}
if(latest > passCheck.time)
@ -130,7 +136,7 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
passCheck.time = latest;
}
passCheck.work = /** @type {TYPES.Work[]}*/(payload)
passCheck.work = /** @type {TYPES.Work[]}*/(payload);
})
}
catch (e)
@ -140,26 +146,26 @@ function Builder({user, role, part, desk, pass}, folderHandle, folderName)
}
}
const selfPass = this;
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
Scan(deskObj, selfPass);
Scan(deskObj, passObj);
});
this.live = true;
},
dump(){
const selfPass = this;
Object.entries(PartList).forEach(([partID, partObj])=>{
partObj.pass.delete(selfPass);
partObj.pass.delete(passObj);
});
Object.entries(DeskList).forEach(([deskID, deskObj])=>{
deskObj.pass.delete(selfPass);
deskObj.pass.delete(passObj);
});
this.live = false;
},
live:false
};
PassList[passID] = passObj;
}
return {

View File

@ -2,8 +2,8 @@ export type User = {name:string, desk:Set<Desk>};
export type Role = {name:string, user:User[]};
export type Desk = {name:string, need:Part[], time:number[], make:Part[], pass:Map<Pass, [dirtyNeed:number[], dirtyMake:number[]]>, mode:string, role:Role[]};
export type Work = [user:User, time:number, data:string];
export type Pass = {name:string, path:string, live:boolean, load:()=Promise<void>, dump:()=>void};
export type Part = {name:string, pass:Map<Pass, {time:number, work:Work[]}>, need:Desk[], make:Desk[]};
export type Pass = {name:string, path:string, live:boolean, load:()=>Promise<void>, dump:()=>void};
export type Part = {name:string, pass:Map<Pass, {time:number, work:Work[], make:(user:User, time:number, data:string)=>void}>, need:Desk[], make:Desk[]};
export type GraphBuilder=
<