From 4e247f3f09becdd6f84e9c0326d6fcee12d70c1c Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Fri, 7 Nov 2025 11:37:12 -0500 Subject: [PATCH] better setup --- app.js | 8 ++-- deep/mock-user-folder/setup.d.ts | 56 ++++++++++++++++++++++ deep/mock-user-folder/{graph => }/setup.js | 0 graph/graph.d.ts => graph.d.ts | 0 graph/graph.js => graph.js | 4 +- service-worker.js | 4 +- 6 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 deep/mock-user-folder/setup.d.ts rename deep/mock-user-folder/{graph => }/setup.js (100%) rename graph/graph.d.ts => graph.d.ts (100%) rename graph/graph.js => graph.js (98%) diff --git a/app.js b/app.js index b51a3cc..89f1784 100644 --- a/app.js +++ b/app.js @@ -1,6 +1,8 @@ -/** @import * as TYPES from "./graph/graph.d.ts" */ +/** @import * as TYPES from "./graph.d.ts" */ import * as FSHandle from "./store-directory-handle.js"; +import "./graph.js"; + import Styles from "./styles.js"; const {DOM, Div, Tag} = Styles; @@ -17,10 +19,10 @@ async function LoadHandleFiles() { try { - const module = await import("./graph/setup.js"+"?bust="+Math.random()); + await import("./user-data/setup.js"+"?bust="+Math.random()); /** @type {Record} */ const read = BuildResults; - + for(const roomKey in read) { const room = read[roomKey] diff --git a/deep/mock-user-folder/setup.d.ts b/deep/mock-user-folder/setup.d.ts new file mode 100644 index 0000000..e45cb49 --- /dev/null +++ b/deep/mock-user-folder/setup.d.ts @@ -0,0 +1,56 @@ +export type User = {name:string, id:string, desk:Set}; +export type Role = {name:string, id:string, user:User[]}; +export type Desk = {name:string, id:string, need:Part[], time:number[], make:Part[], pass:Map, role:Role[]}; +export type Pass = {name:string, id:string, path:string, live:boolean, load:()=>Promise, dump:()=>void}; +export type Part = {name:string, id:string, pass:MapPromise}>, need:Desk[], make:Desk[], loop?:boolean}; +export type Work = [time:number, data:string, user:User]; +export type Scan = {need_dirty:number[], make_dirty:number[], need_empty:number[], make_empty:number[], due_date?:Date} + + + +export type GraphBuilder= +< + Users extends Record, + Roles extends Record]>, + Parts extends Record, + PartKeys = keyof Parts, + Desks extends Record, need:{[K in PartKeys]?: number}, ...make:Array]>, +> +( + params:{ + meta?:{name:string}, + user:Users, + role:Roles, + part:Parts, + desk:Desks, + pass:Record, + } +) +=>GraphParts + + +export type GraphParts = { + Desk:Record, + Part:Record, + User:Record, + Role:Record, + Pass:Record + Path:string +} + +// export type MassBuilder=>(rooms:Params)=>()=>{ +// [K in keyof Params]: GraphParts +// } + +export type MassBuilder=>(rooms:Params)=>void + +export type UserPassFile = Record> + +export type Scanner =(desk:Desk, pass:Pass)=>void; + +declare global +{ + const Setup: MassBuilder; + const Room: GraphBuilder; + const BuildResults: Record +} \ No newline at end of file diff --git a/deep/mock-user-folder/graph/setup.js b/deep/mock-user-folder/setup.js similarity index 100% rename from deep/mock-user-folder/graph/setup.js rename to deep/mock-user-folder/setup.js diff --git a/graph/graph.d.ts b/graph.d.ts similarity index 100% rename from graph/graph.d.ts rename to graph.d.ts diff --git a/graph/graph.js b/graph.js similarity index 98% rename from graph/graph.js rename to graph.js index 3960115..ec45b9a 100644 --- a/graph/graph.js +++ b/graph.js @@ -1,5 +1,5 @@ -/** @import * as TYPES from "./graph.d.ts" */ -import * as FSAccess from "../store-directory-handle.js"; +/** @import * as TYPES from "./graph.js" */ +import * as FSAccess from "./store-directory-handle.js"; export const noop = "no-op"; diff --git a/service-worker.js b/service-worker.js index 3fae1d6..d550cc6 100644 --- a/service-worker.js +++ b/service-worker.js @@ -21,12 +21,12 @@ async function Interceptor(event) const pathname = url.pathname.substring(1); let parts = pathname.split("/"); - if(parts[0] == "graph") + if(parts[0] == "user-data") { console.log("intercept:", pathname); const handle = await FSAccess.getDirectoryHandle(); - const text = await FSAccess.Read(handle, parts); + const text = await FSAccess.Read(handle, parts.slice(1)); if(text) { console.log("successful intercept:", pathname);