add users

This commit is contained in:
Seth Trowbridge 2025-07-04 11:46:47 -04:00
parent 5ac1c9bf71
commit 3494362744
3 changed files with 27 additions and 10 deletions

5
deno.json Normal file
View File

@ -0,0 +1,5 @@
{
"compilerOptions": {
"checkJs": true
}
}

View File

@ -1,5 +1,4 @@
/** @import * as TYPES from "./types" */ /** @import * as TYPES from "./types.ts" */
/** @type {TYPES.DeskBuilder} */ /** @type {TYPES.DeskBuilder} */
function Desk(parts, ...desks) function Desk(parts, ...desks)
@ -45,13 +44,27 @@ function Desk(parts, ...desks)
} }
Desk Desk
( (
{ {
p1:"hey", p1:"hey",
p2:"sup" p2:"sup"
}, },
["Desk 2", "all", {p1:1, p2:6}, "p2"], ["d1", "all", {p2:3}, "p1"]
["Desk 1", "all", {p1:1, p2:6}, "p2"] )
/** @type {TYPES.UserBuilder} */
function User(users, roles)
{
}
User(
{
u1:"seth"
},
{
r1:["Dev", "u155"]
}
) )

View File

@ -3,21 +3,20 @@ type PartBlueprint = string
export type DeskBuilder= export type DeskBuilder=
< <
Parts extends Record<string, PartBlueprint>, Parts extends Record<string, PartBlueprint>,
IDs extends keyof Parts, Desk extends [ name:string, mode:"all"|"one", need:Partial<Record<keyof Parts, number>>, ...make:Array<keyof Parts>]
Desks extends [ name:string, mode:"all"|"one", Record<IDs, number>, ...make:Array<IDs>][]
> >
( (
parts:Parts, parts:Parts,
...desks:Desks ...desks:Desk[]
) )
=>void =>void
type UserBlueprint = string type UserBlueprint = string
export type UserBuilder= export type UserBuilder=
< <
Users extends Record<string, UserBlueprint>, Users extends Record<string, UserBlueprint>,
IDs extends keyof Users, Roles extends Record<string, [ name:string, ...users:Array<keyof Users>]>
Roles extends Record<string, [ name:string, ...users:Array<IDs>]>
> >
( (
users:Users, users:Users,