typings fix

This commit is contained in:
Seth Trowbridge 2025-10-31 14:45:18 -04:00
parent 8ade5f5703
commit dee5328d71
3 changed files with 39 additions and 40 deletions

View File

@ -1,7 +1,7 @@
/** @import * as TYPES from "./types.ts" */ /** @import * as TYPES from "./types.ts" */
/** @type {TYPES.GraphBuilder} */ /** @type {TYPES.GraphBuilder} */
function Builder({user, role, part, desk, pass}, folderName) export function Room({user, role, part, desk, pass})
{ {
// mutate users // mutate users
@ -116,7 +116,7 @@ function Builder({user, role, part, desk, pass}, folderName)
const [userID, userObject] = userData[i]; const [userID, userObject] = userData[i];
try try
{ {
const resp = await fetch(`./room/${folderName}/${passID}/${userID}.json`); const resp = await fetch(`./room/${context.Path}/${passID}/${userID}.json`);
/** @type {TYPES.UserPassFile} */ /** @type {TYPES.UserPassFile} */
const json = await resp.json(); const json = await resp.json();
@ -168,26 +168,28 @@ function Builder({user, role, part, desk, pass}, folderName)
PassList[passID] = passObj; PassList[passID] = passObj;
} }
return { const context = {
Path:"",
Desk:DeskList, Desk:DeskList,
Part:PartList, Part:PartList,
User:UserList, User:UserList,
Role:RoleList, Role:RoleList,
Pass:PassList Pass:PassList
}; }
return context;
} }
/** @type {TYPES.MassDscription} */ /** @type {TYPES.MassBuilder} */
export default function Graph(params) export default function MassBuild(params)
{ {
return ()=>{ return ()=>{
Object.entries(params).forEach( ([roomFolderName, roomData])=> Object.entries(params).forEach( ([roomFolderName, roomData])=>
{ {
params[roomFolderName] = Builder(roomData, roomFolderName); roomData.Path = roomFolderName;
}); });
return params; return params;
} }
} }
/** @type {TYPES.Scanner} */ /** @type {TYPES.Scanner} */

View File

@ -21,24 +21,23 @@ export type GraphBuilder=
part:Parts, part:Parts,
desk:Desks, desk:Desks,
pass:Record<string, [name:string]>, pass:Record<string, [name:string]>,
}, }
folderName:string
) )
=>GraphParts =>GraphParts
export type GraphParts = { export type GraphParts = {
Desk:Record<string, Desk>, Desk:Record<string, Desk>,
Part:Record<string, Part>, Part:Record<string, Part>,
User:Record<string, User>, User:Record<string, User>,
Role:Record<string, Role>, Role:Record<string, Role>,
Pass:Record<string, Pass> Pass:Record<string, Pass>
Path:string
} }
export type MassDscription= export type MassBuilder=<Params extends Record<string, GraphParts>>(rooms:Params)=>()=>{
( [K in keyof Params]: GraphParts
params:Record<string, Parameters<GraphBuilder>[0]> }
)
=>()=>Record<string, GraphParts>
export type UserPassFile = Record<string, Array<[time:number, data:string, user?:User]>> export type UserPassFile = Record<string, Array<[time:number, data:string, user?:User]>>

View File

@ -1,27 +1,25 @@
import Graph from "../../graph/graph.js"; //@ts-check
import Rooms, {Room} from "../../graph/graph.js";
import User from "./user.js"; import User from "./user.js";
export default Graph( export default Rooms({
{ room_01:Room({
room_01:{ user:User,
user:User, role:{
role: dev:["Development", "u1"]
{ },
dev:["Development", "u1"] part:{
}, p1:"hey",
part: p2:"sup"
{ },
p1:"hey", desk:{
p2:"sup" d1:["Desk 01", ["dev"], "one", {p1:3}, "p1"]
}, },
desk: pass:{
{ pass_01:["pass 01"],
d1:["Desk 01", ["dev"], "one", {p1:3}, "p2"] pass_02:["pass 02"]
},
pass:{
pass_01:["pass 01"],
pass_02:["pass 02"]
}
} }
} })
); })