From 80c5863e0b9dca51fa3382f72a643b512c9d179a Mon Sep 17 00:00:00 2001 From: Ethan Niser Date: Thu, 14 Sep 2023 16:38:04 -0500 Subject: [PATCH] live reaload --- bun.lockb | Bin 122923 -> 122891 bytes package.json | 5 ++--- src/components/base.tsx | 1 - src/{ => lib}/dev/liveReload.ts | 11 +++++++---- src/lib/fileBasedRouting/index.ts | 1 + src/main.ts | 7 +++++++ 6 files changed, 17 insertions(+), 8 deletions(-) rename src/{ => lib}/dev/liveReload.ts (80%) create mode 100644 src/lib/fileBasedRouting/index.ts diff --git a/bun.lockb b/bun.lockb index 2f5f0fb6dd03b80ef9e7c7863446b129b8b20dc9..e8c701c88d189a98e21be300a50c00fcad2cf15f 100755 GIT binary patch delta 14844 zcmeHOd0bRSw!U=*Db*j#(a~Jyd-F3Xx%Hypn$FryRKYW_;N;$+eu$?3+lH^WoD@kp@Cm`d`T^Jxq zt-&R>;<#+5Bwd2+PkQaO_KbW(4yV0fF4<%qwY8Pn^79?e66sOcq_y=0ldVWF zmhBD&)A$TWVV0vX$N9@(O|LtYVcNYYM3V65{uUolbw3iS*=+>Fr%CPtM}a*qD?_S9 z0~yTiq%G3sEG^8OjJNfAE0C};I`}@SV_jJ+L z(FDel+}px^=vkRd~R({9|C6eNJIfrqd}&VUgOn zkGi3b_W34FMrT|}vE6>^LCtA@vaI$XoXdU~+qQk+X#IC3Tn13<9J`MX?xA2?%#8*FDt+f4xFK-*ea~ z$_-184Bv6R&9-@qvp)xoUHN5&6$n(hvlgG#SmHxFI1i-99{^ zlUd%~p8H2xl=En$i6mat)vQEf2gw-Y0TE_p3M4Y-!_S78m6sqP?qm$oUm%T#)KWG5 z2zHFDv>?;It0DE|XF4S-XHX+8xENxVJ9przF&1SEw%LM4b^Y?P4%`!Ckq2-L$S0J0;w;K^q#(_!&Lr;*<*D%&`O8pV1~PTx zo_LEg7nw*tYQa1V2^kG1CWe}oZ*(b$w!}9E=ZZmmT*qW(Hr1fzt48T4q_L1%s1fux zN)irF3PZ429%$sA1dCjO(`;{xeB8)Wds`G=oMmYenNP%aq(Gu*v`{4{BrOXjb~ei& zbm6IeEJ|CPJjqkI(bFuag>g?Gi`*2({rg&!KceqO*aw93vc491RXF#cuXlvDx0ndt zI3ek#JDBCB2ws+mwcup%sAjseS(yrHq_#5T*+xhcAhqNH;bz}IK(g>N9g^iZ6ZiD9 z_)d0nxI$U;Wr+w8#c^8s? z5MkZHaEJ`x0O?@%odjtx9jWrxc<#Z__s~Gfa1y)R2A7+MROPb?X6126t;x+)%OfAF=Flpi~?29&Rx!RB2RLh-MMi2H$ zEjKgS#pbxw4pbykL_k%8h?QE1NfDt?`>}kr+=*#?UjSDG3ba~oW?FDEK=!atDyQi4 zODSj|0|>ZU{uw62Lx7gRNPxqfJvn{KBzqr+!8#H8t=>*>VRZjftVJO zqVr(AotUaabRMenFlt00R=`$WzL^<+C_h|1NsrTe@5Hp+3Fs%4iS)s1^TQpq_^FVn zcLufI#s{z)^!{}>T6zZk<2x;y9%mVV7BH9ulz)cFp&zRUXmd3V)?uJu28 zchz*Iv@w96sGS-^Q6^jJh#fg z*RQs+hxi3ZA=L&xPFUF}UMJG{>yWNP8pFq|N#jp(1K+d8%B=hfq^KGLPp`AGaeQZ8 z8h;OxVXc)t%%`qR{%wYT+pNsV4?+4IQkU&kHitX5!@n)? z57Imyx&!_-z`q?9z!!oQvHZ?BcD z{`4|83|@dOQD zFu2Kc?=K7PVw>w;O{~xB(tb;E7d^h!Vb{G4zgzuh_8#oJHwwMfpR)YV!{6lpZJz9U zFIxLC1pQx~=O}T2q#%3~fUk;G!~fF8X?Y zuHH6OZ=_yzDfa2oIcZvejp&H!%$dw>R@5!eFQfD9lL7$O3Ovp^Oo z9vsfh0rX$zN5DCNzV-Krg5j*QLeFB30F9z*I7>^RM>h1`w;8}ME9l22>hqn=XrB)} z4J-iYNz@D=9heC`4%kH35iEG>Bvc;*dINoc_h90EfF2v~1Db%BfR}++fM(zjunVAX zbyopdfE}Q3!4rU3z$7-0V1X`rl5rmRHSjJ#k4)YMjso;NW*}gJIz7m61B-xXf#-l{ zfQ7&y^wZ*k^Z(*mqRQ$0`v)B>x4GGH+<4=4rbfjK?o{u(?EJRW!$pr^Hi0s8TT09FDMA=C5N zA;3^zHn0`#pMaCV_*Is)oPIa@G%EB^bOHDoAYl{)l;grMiuDbhgDPzRZ3Jx&B`3u` zu{nJd8^y#EqnQt7oAiTTXhS9eW`GW+i2xl;6M%<-@jwVL7#IhP0Rn)BfS~{#bhJPP z7y^(U^(O=Lz$plz6gC2#0HnL?N1+WG48U-pJunOy0gMJl0W|SQAQi9zw4sjxHsDc! z7Mu=D24(<{0n>r0KpHRwm$?HI0_en44p4eiZc(};ccf(iU>!im(RyG5Kw~!nn}MAGjUzkT0n*eO}; zIMP~gd>y<>C}Ww^PJI+{@2-4|x_4(jMg0?ic3}_j0`Pl)cCiQW8Q>j95&s?F9eWgY zvi%A$xB26->{F(EO{W8t5OHQai*3F(o+Yy8)CnxYPee{*&&u7~i5=5eA9-Lq@gebv zcB0*M7SiAQ5=HKn1#X|gFOQPh%s%l6@d@~WdVuzWa^rVP-kzaco3Hou#c%Th#LVfe zkJ0<`$5H=@>899T*P)RR-!C2-j|Pa{(^`l2QP<)<__U(bfIFp4Ky|0TLxwb1{aAIQ)EccD?O{+Q?Bqq#cZkcryZ_mUU zyf1yY=YIK4T5A7mGJ_f^;;jr3@i=TP3Q>=IchkkXkop~eKCP~@cf1)V8#NXo@`Vsl z2+jW97e!W1s$GBp_lFVY%Xyg15DqejYE3XX|U&Dsn z7%Kdqz`DHek_0{VOy|f==j&zmjJ~k!&SJ_F@O^h@u??F27aO(z`5WF?Q@SzlZ3ku@ zfG8&Zy;(0BMH?Gt``##`Y?!^Nijr0IQ|V(8@grvgID_TA8o>L%WTMt|>n8LLyyb^T*job!f;_f3xV5yO`3eQWdB z8$I@JBFv7l-giHqSe&)}+qbtLyrJQJJ48DB$I;_|@zv)ydX9Dz`50^TzS=YQ=flVQ zE!}kFhQ{@7ViRe2UjhpMdQ)84)R)-}jhIOBj-AE$Cq=4PNB62okzWk28zO}%8!7Ng zq^N%q^07!UI~)84*a_AH{eGl4ie{ttt)Xkr9saU?ORE9ea1N3K~J)7mOBEotW0@c*J^{`ScL)S?MEu7I&( zp96lJj1?XS#-524eW~9H}hDC$eY3v$$?E%;K-~5ad-+GC`}NTrXUD#WDu4qyLyY+V59fF zCGV>>FxM9|;fRE0>uE6eSsu)3{=4-U_VLD2d_IdAy>Zv~{*L55YHmFc^^xLIKI`PI zn+n)?uSI>7@u!ay-QKO{Me9N=S?dzh3SnDIiB8Rxh3wa|x5xb?dTvW(@g_Cin$5yk z%o2YpF_AMj9UDuFaWT2wNKR0+C)erY}w;zzJa}eI7$mXyTW^AqG(!XIS zJH&7|dq^yGvti16dYiNPtee%hZO*J=}QGMTs5gX?mgU-mP9CT(B5S{<~-tvPSa2aOg{O3%aeEq$9>(;Hh zx2j&hyw`8`k=k32)LzhAtk~V>xbS4>6_0Y~WR>QYxyHJR%F9Y!SvfiG(vqnA6~(3~ z-mL+Oav#`T7CW+_c!ct2==~s9n);GJMZuqU5#)QoBTBQfU1f@rQpd2H24?%W!St6^ zG@&r7JUdTQ6a}t4-pM#Zhvnv&zax!$GNQ zOqn}(f-*Y6SQ3e?4Tn>}Owdx(ei{66$P6(ussSbRCIvhq?4 zy)o+Rpxy_}t}me-hjJW@IhFHkT}a=FV{Y9wV1`ptTvpBrPRGLGLM+NEDt6~6iVO9e z|N32x^k8<%iVL!o?5u32Ss56y_gL+*HT#Y{QZck)=lEw2ESOq<#>JT*Hfy4VHfr|B z>;c0+|L4^OSzk}8HFQPFoQ*}}rsw`SuFsfuew81+KfU((HV*~t+FU;OR7K95XMXGc zVAaJ{PaNvH<-7Yf$<%;w-^*jJOds&sqW$ZW?yceb_f2(Hs*7?LNN+&W-b(@JYRcg; z;j*M&$X?&z>G%2|2i_WTVGFx@FhHJ2aoD~@ScdX+W4lix=C-5sZc^U2#H>NWMIc6UkDxbD)t?MNi~Pv#IE+OD=V5hYzv_53lmks zL_Jqm`ZaT?9fD+fGl#7VvqxXP5+T`MhLol|Ti7Vc7ZaQcLD8#rLE?ZA2L^i)k`Wb# z?$aLIJXQ9JNw$r}5w;0pM}X?OdNRF*Lw%>7tZ3n|HNeS)9)t`;fW0Bn1G0pWo`!^F zf;vi{L+TBw76)ug3$d~bpFVRSwUQ?rB-?(6BU-6!qXve`iU^0TGgc?Fs1I7594h@< zI@I5V%Jh~F8&@Y&Ww`AK$(SZ~QUZyQ3%SslR2u?4qx*Q-IoM{ag?-))3Uq}j?For} zAQho@wW6W)i*nfBgwk*jI6O&&$%-h4IzLRF09_4}e$ftFKb)A^eNBBDHZ+nI(GK;a zM)CwGq_Omiai|52WqORmwhO00&Y~jwVe&sUr6A6OPdHBFon)_i$+lb`!3qlo0qld+ z6H*O5gG#ufBFsa3+k??J+8Stfx79*0O~$ zx9AAbxFMOYgY9Zn3wZ)2-$L0Ry<;&nwA=bTU}c;8VlgDH-dZxSiQVTDNDg^2I9Y8T zA^j2^KF&x*=^*_RlYPFx(NO&;9j88Br%sEKer+5+uRzg7&J9gg{i0-8|hbe`GZx1eaL|6}BJahyJt7{0PM8gtw^B^%@7zWbyZmg`Z zJJjGfdBX0nb%P7~!~nwW>ex7$p5#z>#>ooMJ@N8HlEapXuN1njAp_gkZO0%Pdv0O> zBms+#4xdDL=*<13PEU}2ogB7mD7X?Z8qCEPkRFDFGghqK=D;@K%llyd1|+=|&A6R*?&?7GztnFB^fb$=-)JIwyMA@mMX z!7Qoz=PzRp^g*B&(A{i*E2bSzKYB?s;x`nG0ADivwpWG%zJLp0A+upF1(X|^`jNWU zV9I%>Os4EMIp5?_CVL8Sz(VE#icBs6GnHi~j|H=kX*V9Y7nlyPgBd_gU>3ks&jVP< z^s^9PI|;Cu?9mTsutZlIOoy5&lj(ScDc_1|zY-uF?@{0$;5C5ylK=~u{r^C5JGmYz&I5FG5uoEs01KJ&R}@fg#jO83 zzyQ7hSipM!H!AcIUN-6#G8VQcK7a`F^2H<~@+vmA~nV ztjd4nH|a-3T~m7_b3pY?{f$g7p==FqXx5WC(8iSIfKg36JZNUtl4;$-|h(6s+rH8jv{4Ib1_-ENH@0lJXn0V#EIU;7|vHIrO1a-o*Zp^G*G&m=jWjdY+ah zf@%5~K5EF=!uoo`y;Px)Iq5UNjQ2@XPiF5GrhX2XRde}aGVSM^GMV;^z&u+o2eWDg zKTM{5rNBbx@YbS&iuIu=`Rn-w?8bnqS;l0Tp$Ii|RYTv;3?cxCHd1=K$rhNNLEOX`Xnu`v8`85_Ap*R4xPX$;~_0ONdX8(Ev zj`Tr*r;1x$ThS-=v`eFaawBs9>A)|!#PZ~#0UiFU*H{H;%R=S=icJ2Qmsp-Vy~eu3 zODyD{*IdlNzjlpvhnHBK|2w+ILi;ecTw}5SJGjJZW1JU% z$+eXt59ina?`740FRS#Wr(a(2tM$K^RsX*0IpeG3|M6v2JFbm${8llUhd+5)wfD+| z4S}-J9;aw4-Fq@bJ9%_ZhFm(wUsi5&3cC#5n<3NY`b(dkPSHX3+nFIRLz=wTDU#)J z)NPsPFSqY-iWGTaTZSAs-(U9H?i8Knvh5ktcY(kB4$_0N>Annk08-^_r|2p#%+8Q` z3t>6ODIS)~=48l_MX-d_UG|upAzy*CeXdjVkXIm$m;Q3-Jg0EVs(BeQ@+p7mKi?^O z$wBio>;x8L5bc)|d_reVMDWsE-2FTDwh)+Wd zi<}}u9*2~+)L+I*rx+wBNW=%}45UY8)KiFWnZKO-lv50q??D>4++U_Fc8Xzg)?&oB z!e4#?DNA-(g7_d+E^&%%c>z-1O2nr*g-b5e5ML$YgEUh1Sc>={ZC~mXZg~aL_*IB+ znNy6CRm%|HYQ(qPDGKGF<%kc`VMxW&wgU03L3}HmVzfL6DQPX@Tj>;K(!CP#K{^R( zj0~+reCrTjrBjTP$04PyM|`WCVuGBo3h_ZY1L-jtwHonlKzys6VzPV>(!h;~Z;exU z7V$xxt@ohzXo19{yJP0Xi8{*sS6jHi3 zBR)tcAuX1nTM*xN#J9yMGw-fO_?G%;rJxBw0 zA-=6nv0BdBiuiUTK1ge22dv!#kOp8Sua{LjGsFfdc4df-a?mbBw-=+_`!b)LJ`vDvT3_@%_J81WAS_T1g{d-ZGX zyD;xo7UK0Es{H))@BQ%0eAV-Mtnupx{*!6_B*G8>@Z+AX?)X2fGZyWCxRW0V#AEyj zxe*Ia-T};1QpZ~j;e#C!Q z)6biFH>V%J`?xw=F1Q-BH|*Q6Zc*0Fnd8uE~1(L2~_dfL@`jJxx0vl zp7A*3Be>UrH-J;XY2Z!ZE#MEp+rT@(yTBiT_kj0-{{cP#&Hx_*XMuCT3jiMzJ_GCn zc=c8ei~)uMnZPh$IDc=Kg@X}5Hjtxz*+tY94{JVMg*~t-G`yqDf6vYWA8Nh2iiWn+ zIOKn@&uOE(iVV-QIOGEiJFJs{4nQ)%haBsG$AC$|WPs0O_)I4g7zT_0vVk1H1>^!F z0X_%H0Qd;24e(d^`wTb=90Ohgeh<9N`{J+Q;5hIqz#DX{fi=KbU>r~g@SMaOx4enl z9l$Rj^n2pG(cS`h0Ehru0=)Il|3Kdb{s{0H!&|@$z+oU6=nOkA_;KM;l&LtF222O| zfMW`f0s}q{3<3DKFbJpx)CO#TAHaKQe74D(dS3#AAwLT6fn9qb3FrWH1o-eT8i)b- zVD)bRZ)fg8|N1lP_25;&cwhoB5tsx_2BrXB;BjCoFb&8D+5<5_6c7zW0%ye^fCLr;GXQR{Q2@78AP@k24_VRrbra1!PKey7oq_Gp?f^Ccn}IC=Z%{7*W&yK- zI0ot)%TazY&3b}c^0S^Pi0j}?1KqfF02myKnLx6!mAkZJ^3-kce02|N; zpdIVefu2AR-~_^e20$;ZX%A7?^9T;>0R4d902#n<0d_S27z7Lk9tE<15+EDk5c&Kg z2jKj=04~HlfLn7U;0Cy5|A|rzE&@t{(E!^(?P1+Nc}5!#j04632|yeW3&a4l;Z7h= zGT8^r)n6Y72Dlp@2fP4x33pRXV6rKH3jP>)5;zE)1I{X1V!DX)Jb~jqzzl$Wuy8eU zMRBF90agJLVEZ}1Y=G@(I}=QO1uzR(2ykI>LCpu|0gHgA0NQbdt^~Mg7IS)+<6tSE z0ZV{o04j9dYH$^>9_R$D1J(jua$Gu_fDOP#fOeaKEx%o816;2f%UM zj02{Q`C;85lMjQR12{D5X;*#2F?GiP%l;J{GsfQoF99zivbsHm%SA&bYYo7Jegs%a zJ&)r*0ZgEk{J-Fs6VMX)Gq46=JLc*Wz-s$Ej_LauU`F+sp5nZ)UFJCgrK5Jdw}`2} z)LSG8Ei*?nsE+I_!hN+lZqYW(dRfByp|UEbw2NyUmx%EPXdk#mqPjIeyFXv_RHN?K zGV?`9g7w;k^^<2+WG13TYix}`^M~8!kDv9L1nrVr)YD$i6TWIn9jzo!g!HxE#Hcwi zvH!_hPrn4ic5w-GVZECX9iMjX@}ogtp~j9H><8=Z59^oLsA*%=U|`!YFfDDMn5u>a zX|D~$s1t&g3=)Z9)?J?G*1Zt3M1Imq_oojwAXw`?NQ8u0??!}uGvm!6wrdk%kqEy? zdQ`ABl|HQ3H=g(FH?&zy{CBWOh-*iS^kD7OAd#yM4%U(eqtl#Vtza-x)hSqemh#8J z+C|FI^|Vfpir3YO`r5rips%d2r4B*g*83iZu5AtM+;+oAJ*L)-_CSbMK16ucZ$h=N z(W1TeriORyXMe~@Z+}e{Fr%R|BFy+T{Dnv6yjVZv^u7A%TF14+$s|n694bPLRD^_C z?_@0adgGdB8`YSq2iiWab)s@1Oxp&-FzfA&h4F*uM(j`Npo(aH0pYybNIN$asj%Mr z=rb;Qb-U9$zlRTwBMILnjkLH-SXgg_1dX54u*I5lE3ux;kq&91P0B^=LfYTH*Yn}VOBAQt1@#~F!QX2K2}cUoNuu&)xYlzRd{i~nyu%RUk*3=6VPc=U zvYFO*xQJFCXs%5fj{3)%YrBSvaCLuk?akrn`$%&wJPUnVuZ6t(?uOrGY`ZU1&xM{( z>&21jt3Qeecwyo|)U-90!cJ1x^#F|6bEv#2bE?ho*&!PjT3$ND%MQW$Ykh}0m z?Q*t=_KT0yzsbGRBehmJ&@YSBy5(T~S?|NN?!4iFNz(!wVE)>~wc)8{f8-K6I2x(# zU;}e9!rp)*oVUE&w!Z#_GV4sQ>s_9U)UMI;?Uq_Smx%VYy3{g9iw0JEZITPZp(rh( zR0R8=o1@X%9+yZAvfd1uwD9QQ+DF1GRdF?1yX+E0R!en#D{X47SgxLJr8ORj1=TlJ zdt@XQ>7_Vr%}AuldL?Ie&QrUed;d6=hkj`)-cKG7l8zdjvUx^Y6rf$C zuLJQ~vpl53dUwuxZ$}d(%dta zNA0zO>vOQAQ1rGc+TVU-+g`zFH3NJ!*>swX#FA|qjt8aZ_{L~5z z)wYiop*Jr>?doVaHkMI{dc&g5DHYzIa@q4{Z(+CJ;Z~@(-^a#Ii&oH5bPwOkj4jD3#mk#o*WF@{_SrU(sr_}g z=&qgIAtq>Xd&FvO&JN+I?y+422<_w^(V@Ec0?{+9W}!Q~RJ*uMG}TV ( }; socket.onmessage = function(event) { - console.log(event.data); location.reload(); }; diff --git a/src/dev/liveReload.ts b/src/lib/dev/liveReload.ts similarity index 80% rename from src/dev/liveReload.ts rename to src/lib/dev/liveReload.ts index 8cf579b..ef2bed5 100644 --- a/src/dev/liveReload.ts +++ b/src/lib/dev/liveReload.ts @@ -1,15 +1,14 @@ import { Elysia, ws } from "elysia"; import { type ElysiaWS } from "elysia/ws"; -import { watch } from "chokidar"; let wsConnections = new Set>(); -watch("src/**/*.{ts,tsx}").on("all", (event, path) => { - console.log("sending event"); +function dispatch() { wsConnections.forEach((connection) => { + console.log("sending refresh"); connection.send("refresh"); }); -}); +} const app = new Elysia() .use(ws()) @@ -26,6 +25,10 @@ const app = new Elysia() console.log("message", message); }, }) + .get("/restart", () => { + console.log("recieved restart"); + dispatch(); + }) .listen(3001); console.log( diff --git a/src/lib/fileBasedRouting/index.ts b/src/lib/fileBasedRouting/index.ts new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/lib/fileBasedRouting/index.ts @@ -0,0 +1 @@ + diff --git a/src/main.ts b/src/main.ts index 29d5e4e..c784919 100644 --- a/src/main.ts +++ b/src/main.ts @@ -3,6 +3,7 @@ import { swagger } from "@elysiajs/swagger"; import { staticPlugin } from "@elysiajs/static"; import { api } from "./controllers"; import { autoroutes } from "elysia-autoroutes"; +import { config } from "./config"; const app = new Elysia({ name: "@app/main", @@ -16,6 +17,12 @@ const app = new Elysia({ routesDir: "./pages", }) ) + .onStart(() => { + if (config.env.NODE_ENV === "development") { + void fetch("http://localhost:3001/restart"); + console.log("🦊 Triggering Live Reload"); + } + }) .listen(3000); export type App = typeof app;