From 03a8d13683f5ff95367aca04272bfb6aea7e093a Mon Sep 17 00:00:00 2001 From: Seth Trowbridge Date: Sun, 19 Oct 2025 20:55:01 -0400 Subject: [PATCH] fixed recurs --- main.ts | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/main.ts b/main.ts index eaccc1a..bb8bb76 100644 --- a/main.ts +++ b/main.ts @@ -1,24 +1,36 @@ type EnumDefinition = Record; type EnumBlock = Record; - -function Block(options:Fields):{[F in keyof Fields]:{[E in keyof Fields[F]]:Fields}} +type RecursiveObject = { - const list = []; - let fieldLookup = {}; + [F in keyof Obj]: + { + [E in keyof Omit]:RecursiveObject + } +} - const proxyOuter = new Proxy({}, {get(_target, propName){ - fieldLookup = options[propName]; - list.push(fieldLookup._); - return proxyInner - }}); +function Block(options:Fields):()=>RecursiveObject +{ + return ()=>{ + const list = []; + let fieldLookup = {}; - const proxyInner = new Proxy({}, {get(_target, valName){ - list.push(`:${fieldLookup[valName]};`); - console.log(list); + const proxyOuter = new Proxy(function(){ + return list; + }, {get(_target, propName){ + fieldLookup = options[propName]; + if(fieldLookup) + { + list.push(fieldLookup._); + } + return proxyInner + }}); + + const proxyInner = new Proxy({}, {get(_target, valName){ + list.push(`:${fieldLookup[valName]};`); + return proxyOuter; + }}); return proxyOuter; - }}); - - return proxyOuter; + } } const styles = Block({ @@ -26,9 +38,10 @@ const styles = Block({ Display:{_:"display", Flex:"flex", Grid:"grid", None:"none", Block:"block", InlineBlock:"inline-block"} }); -export default styles - -function Sheet>(userClasses:UserClasses):{[Class in keyof UserClasses]:string} +function Sheet>>(userClasses:UserClasses):{[Class in keyof UserClasses]:string} { return new Proxy({}, {get(_target, className){}}); } + + +console.log(styles().Display.Block.Pos.Abs())