work-graph-simple/index.js
2025-07-04 11:46:47 -04:00

70 lines
1.1 KiB
JavaScript

/** @import * as TYPES from "./types.ts" */
/** @type {TYPES.DeskBuilder} */
function Desk(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);
}
Desk
(
{
p1:"hey",
p2:"sup"
},
["d1", "all", {p2:3}, "p1"]
)
/** @type {TYPES.UserBuilder} */
function User(users, roles)
{
}
User(
{
u1:"seth"
},
{
r1:["Dev", "u155"]
}
)