work-graph-simple/index.js
2025-07-04 12:11:20 -04:00

62 lines
1.1 KiB
JavaScript

/** @import * as TYPES from "./types.ts" */
/** @type {TYPES.GraphBuilder} */
function Desk(users, roles, parts, ...desks)
{
for(let id in parts)
{
const name = parts[id];
parts[id] = {name, work:[], time:0, need:[], make:[]}
}
for(let i=0; i<desks.length; i++)
{
const [name, mode, needObj, ...makePartIDs] = desks[i];
const need =[];
const time =[];
const desk = {
name,
mode,
need,
time
};
for(const partId in needObj)
{
const part = parts[partId];
need.push(part);
part.need.push(desk);
time.push(needObj[partId]);
}
desk.make = makePartIDs.map( p=>
{
const part = parts[p]
part.make.push(desk);
return part;
} )
desks[i] = desk;
}
console.log(parts, desks);
}
const users = {
u1:"seth2"
}
Desk
(
users,
{
dev:["Development", "u1"]
},
{
p1:"hey",
p2:"sup"
},
["d1", ["dev"], "all", {p2:3}, "p1"]
)