57 lines
1.0 KiB
JavaScript
57 lines
1.0 KiB
JavaScript
/** @import * as TYPES from "./types" */
|
|
|
|
|
|
/** @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"
|
|
},
|
|
["Desk 2", "all", {p1:1, p2:6}, "p2"],
|
|
["Desk 1", "all", {p1:1, p2:6}, "p2"]
|
|
) |