From a69cf8a033df54e299aaaf93cbea07f13b97a58b Mon Sep 17 00:00:00 2001 From: Liam Date: Wed, 9 Oct 2024 18:08:46 +0100 Subject: [PATCH] revert react bump --- bun.lockb | Bin 296176 -> 294696 bytes projects/website/package.json | 4 ++-- .../(pages)/leaderboard/[...slug]/page.tsx | 13 ++++++++++++- .../src/app/(pages)/player/[...slug]/page.tsx | 11 ++++++++++- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/bun.lockb b/bun.lockb index 4eba9f00da75eb3688945a48d2748d204969cd8a..28c7ae446d4c6c427846cc6b9c737f22f18785f4 100755 GIT binary patch delta 47846 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%0A*%lm6wy~z?c!X8s5OzptU;+;z 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 MJ0i((gZ+d50Z#!~_y7O^ delta 49044 zcmeF4cX$=m+V*!QY{{kM=q*yrGq@O$vh@c0plhgI;Enr?w#!7A__k9WZ(u%GexQCJn3>G4R1 z(|s8U1d0-2;(Wfsa3}2i@c5+ENlD{;z9FMiMnk^E^?kkq=x5QqrgiRA>;kTGFPIo1ihQ0z!5d;x&#<;UaJiSQW42rR&t$tw2*) z`A5TQc>&@zbAM<~kE9bA*45`L4tIgowO3))FdkM5?(gPiPzt*e_T?__Ox{lh#jy8w zcPn1IhtF3T`y+JC*l9g|zOwL8SOs?UxG=1lUKLK)8rekx)vz{P2`=LCu4--pbrReq zGk!#JYARz;zK>hcU9buonlyOgaJoE|UehNZx?1{CU$GB^dRg`<*Py90b1b_}dB zeVceqzTqjO2PdYC_r2=bFTm=d=CBI>@E&&vs-(C*G-O0#3X*RnwuZ?5G+*WP?l@}( zj~t&geh86IVXKw1U~QRWN4tggfHiT3qF0nZk?Que#FUie@e_Po$GG$430RG&j-Mv< z#8G2XCJs*?HFTWYtHTIJPaNYb#(ZHoYG>qi0~uqYQ$`O-oR9=3rzTJE<(=S;*U-@u zl15FUmuM~Z^SwC1ekp(X^i9p&{4Y&(7eF#DnvW~cHNWP=>V*E2-FhZrt8=okHM-7) zDmr=m$Jpx33TbZrzn|j9=fy6Ko;MsqTvY0KN@{U#2@{fr`o<-vj!PWov+ph(u-ZOh_bFUG{ply&A?@xZY4DU=g^}Z<(-Kot ze2L?Rk4faxS{+@JeCX3I_ks&z{{U-hBo7}odR&sb2DRf{TU6u6j7vf<@~rFEl5(_| zVqtoENJdox$~bgAt$@v{&nOA2jRibzx6W--O46iJOf_EVu#STiOH zRzc-prE9v!)r(^*-BqtgzJk+L^A8Cq!Op#I0dHcfg`40K@G_6*!78W^tYz2?*4Q>< zNaTO_^X^cE4mRzWTk;z^ddP%v$)l30;-~Unc+2&>C5!&Q8R0h)mV+3zoS9$vn(Eo~v zAtPn5g^Xl}u9&SN-8r!wT{V9Y)(|Bgb^W`;s$j!++;puyyAG@kD|pQ9ndPw3-Sn<& zuYuK*;pxZSmR?3siJg4>qf;g&`37REf|pOa z8Fax`!ByZ=a8Zv3rL&CZVsk@ddltTU8mi87dhi*`*$b5!}x1PqH1 z9n7}l<8x0UyJo7-x9t-*zoeA3@yUrCA3k#jq7bZV4;elBp5!E7xbNy&`|%Rx2d~3l z1GU6Um-2->0JA-NJgjn4Mh|BrO-f0`E{5INiyxCXVFbIiuNk(QJ!IVIQM#?F9e=AK1^H}>38x$JATD$l*k=j%)o#`<4A6VcTHC)dqcxa!YwdF;;7r7B-VZ1dkZ z7wKC1uF7u4%9Rng_W7%f{flvKWv9kAwAXcN9B5R<=W9SQK078D8<>pM5X*0mtsNWK zf>jI4a;z`0f{y3rnz8hX5L!3}pZJ#gEPTkfp4}pP>wC7r=LLHy4zoX3{)K{Uv35BS7m>p9+)?d4> z>XOwp-an5}cPDg)P**1uQ_pEPvG-mJ9V67qj_%bstdrxD8te0Qa6&u1P{TZNA*l-*F%3cu(K0_fna=SL@zdt4ZMKmCKwwX>;E3Bfzz8&4ejhc z!9XHoPhY4;O=A6Pu$tJZ_2R9w4ej-PgMm(se7%?6Fio35%}FzzW9tmtobkbE4w|hY0mX z_t_U~#YR+Wf{tbOTnMXa4~mWmbVJcpV_wqi#ZBy}fkEp^6MN*qnbzG+?QE=hP3@>b zLF;H!dn8n(nY|u*pt+qrC>Z#j4s1p8aC0W!&#tx=~ol z)8{n$6|7cH*W_vI_PyH~aaeJ7YQuPIOj|p9XfUu1fo{ntYsbXKMufFuKe#d2aFwne%I|R%+T9JmO zA+_v_17oc%9qjDkLF@YtcGQTV|E`X7x}8-s-k(fpu<8~#L`d_6o@569iKRa9+ZUN! zT{|)H9RG(2HBcz9Uz+2Azm?~1J8EPw(C%)ZkH(QKrg5y_#_FI|X`Q*-&L(;&oz1>a@CursAVy}mKbg{GV2?n0)!uoSvhQ(TGUG0%6LI2LK45*!&5+BIhEi}zG z$He*@VX^(8FCe7akaLY#|6!~_(*4yauD9dy03nSy9>Ze&XRx|E9({ZGd?TIEn}pig zIinl2ifZ<1^v_LhF*5oq|2FF&+?}YAleA*2Sc`qi^Qd;06LM@zvV;+o);Ls6=;q1u%o>&d-oLcdL z-J_ZHhPj&+ms7fa7#1s4jVA6TETwaH6YG~@_WEhTK*R`l3EgCm zZ5SJ9h{bh`BDFP*8exx|9*lSnQ6*g40R6wBu%f2LM`R@57f>m^F+Sf=g#zyq(p+KJX&4tV)?Mo1&KA@RYk-||U&A~E zxaQ*hl|p#a!R%Po#4|z;UJMw#2(usHZTjTCRV_Xp}f~TZ>Bu?{(+@N zMc88-#|Gjix~1f?FLIrnfmPE^jgI$c5n_I`{z^>Jn#>u`se}+45}`wcS}WEnHrdXe z6SRg+wxi|-{i`R3R&B*8&Iv0RZ%v+JXA`vxpCxkG=Nc0`^atb?kF4`#0U^OznBB@B6)+{L`IK z*1UM@`}^&vM}q$94|q|5MTA)G%B)GO_3Hz6_9H=S!Yn&#LD2u&EM3EL9*MWAKWMK< zNPbY$4Z(ka5VIyT-hbC@Cp13Znl;;Azc3iMgwTi_nLW*719j*4e6_J6?3iJ(f$>iZ4D9flz7 zb6|;w-Tk+i`q|$Li^~}s?^!|v9Iu$RaS@NWmmX@(^?VN&SN(eN5tSCWd%*RYjYr{{ zS})$elTc45RCuAb6KUND^|Mp^HjE(9$*lt!mVZ<|u2N?b^6C~77lF~v?FDW@Zni^~ zuF?CjIyrfkSQH8kA=JRpRuJOoK!)cDaUi4jb?|Aj*p6Bj46Iu0o}f5Ya>6^k*j~RZ z=r8-2bLFF!LkKYrgr0V^teALzUZZ2ba!er9-K{$H_yDW3<9p{4XJf!)D4{lPnOtU{ z_bm5ppMUAKR&X8Yfu(U~#~T~#Uy9Yp&f+%Y146p~Q^6B)VUOEUtAf@WJSkii^w(bD z^Nq7}HaCnQ(8H;Rt|-4@b;V+17#kZHzS8Yp@@*Y!y|~g|zd9JGxXS12f{Swz3yj0k zzQPVg$2`Bv9=RqMxQeLj5=RX3tiRelj*(}p*uZ^QcN6E#T>mjF+RZjtagE#Bo9xZ2 z;__gytJjDRY$R0A&7Z5;msoWiOULKZPq_PCUR~P)30Ueb=Mo=SgXJz4?RO_V%Q*=7 zi#|y%c68nNKubc}F{upAo#yJU zK%K$zN+#}>r`>eUf!04pmebr#gqk@etBZce@_LaR>OSMPlJhHf(8*ZJub_Q#WURI3 z89QoiFz|`z!dA~tQTkaoxtkyrtCf?r8np$h1r}q-`QcYAHG{Dj7#oOP>soXmjhc+5 z2D8Iry@=(G;pRu2oM{<&Dq?C2Kp{xgI)gY0M+ z@j@s=2E*SAi)Rlp@quRvsVkki>;F(*+Q9v{Z_%d2#t|4t$el0R{U6m>V&%Qbn3yQkcZt6HQG;zgFP3QA}@uuAXdJ=4;FRCcM+kW(;e>;a(7`(m-4&Z z@u9qCvHl@gJd2^zb}DqO?S)^~mMgt4p?lFV_4k3ROe3ZmC!C5(=j%Xf+a8J6x+u^tj-^=bu>a#kk|1kQcq-&%|oz^w$AG zJd3IuZ=VdGn5!W?lf6F)By_phb#s(H))p8mVvo+Rw>rFfAwP4`(x7Z(Ib1E}U-E&fJ!j zbKH(P81y%J&s&iZj}g)`xmMZ0rzo9JnBh#5>hHVL(!Jh|!>Ugl3+Juaz;j+47X>`O z!_q~8TPet=u)lg#ZWBG2QG3H_ZU_^ zEbh*+5>B%Wu-xOsVJuZ8zaDi4s+@6WX~lN&{a~Q==kCEWpAHVzeV^MSKL`f4B38rEIU`4W ziq#D3+9dMd_5~$76LmTvEphInm?UpVcP!oW7y8m|OaVLQy;!UJmv+>NU|>F?mZMiA zEO)+WiWL3I?R4Te-Z#f;;CSj}HUmp_=ia&ww@|s`tcb7e?2|$N;IB#U9LW|bgtK$2 zA9xE(89DbPcM9?9fIcYb2JY5l;kY-)gKlEGJLvM7F*DRM21V8{L32ViwphUe9vAeu zkjI4;$tO3f8;YWfi+g@Idw#h%-O0Fw7a>-HTRb~AhohH4S5#RqUaVlGXXoZT=oQeF zt`e+#@9_Mtb2{o@Mz|T@=_L>=gUTL9dAe8yM0>Va!RnqZE{5F%)&%I~>0;%V;Pk%& z2sgn4VfhU5I8g>4u?iaM=}E9!nC!*>6)S3_7oVGzPpYT;706?s`s!AvC&qiSSoNFe z*|}NLBv1cOtn^bnKe2*oo}HWJH!X}WLFhxkX_xv%^}NqZkeeml&oA}YTrXa%;6t7* zR&btY{}rp?OyX6}f-r9;EI^1rSOUx8aabL_686JS!up7%KkM1KS$@xZx;QWP7S9%| zz-^u_R&aZ0CTz!2#=AU++$`y3eyL)wz{+S3EPbzjd93(1uvPFOSot0G;>8NSX~pQ z{u@@$!Ro$fA4|JQP7Z0#=6iz?I;K zVSaoIJbn~b{9?~Gu+lB_conRVSo)K&{Gai7ou_BP{P;Gi|K+&Fi`WipY+i=dlHH!Z z2UbRJc=mpnAKyXGejAqmQO`c^@rRy%0#;9)_UtpT^7|~EfIgqWD)?*9;hd-cH>`}l z!C(9>tgijp%jXx5e}(z+UFKI2IDoS%oSu(>5*Fl_916n$xRj@tg;lW%o?Qu+-yN_% zV#P zzto~puqNjuxFCE#to&xd`iPb8Az1m$gCjKmZBJO_@nTpXv39;S@SX5JPtVON;DD!# z6+Gr;Fu(%Hz|XF4oX~ z?b%}I`g6_`#L6h!v&G8j8_&+o(l2HiJO|BB}?mVFh@4@a=pZ-ygbE&B?2-0}%vIl^^T!iwn1>vmZ79iE?9dS%ZR zE53@yQLrXk4KF@7D_t$muXeiU7ze8dg0LK#dfWo8jy(=mhLd3xG{xgISRb+Ush%xX za3;T$?tWPDdihQ~%j5J138<^*c*0y*AF(R*h^H^`?8jhbxC~ZBS9-h#=EwK6XRn2o z?|M()ph!Mq1z&JE-M7t)5G(kSXNy(ST^_&e>0;@-VHNNytcvV~`SHEw>H9tXkf$H@ z>~~?MKknF!{|8>gNsmAA_zbKKR>(3P+(tcq3g{BMU7n#Ih^Hsz^0hQ8D~d zIkh~l4W}z2j$ca9K!(Rf;r5>15mv%ZUc6WtcZId54}uky#4lZZQef?zQ(*Z`hn4?K zSf5<%u0IJXK(!HPczmyy;6Jha@54_wT#H~8^q9v>VC{HoVEH`(7l&W;;@=HT-0#^JH+#BR z+27)E8BZ6h+L4|uR{CG~}dCsHBk^8xhVq|Nk z{PTS0pXWROJm2}}`OZJjcm8?4^Uw1g=Q)oqm;XH9`RDo0KhJmmdA{?{^PT_nTt_z& zir0?$&-0ysp6_TrxX*nwBmVc#cX%x4Jm1+~zd+dS(M`tAYtyfP{3kChFZ4xXp{|pn z3tyPD`O!vGvkp#K^LBxThhABApnvZcInAn!TeGjd zcHs@PqJCJZ^n+il8TrlD{q@h)X>;3@qrY|9nZ00goXP8ZYG2Ny`8rSQb@1l3uU|be zq-xJL^^Q)vd(!CG`@T#V|Iqm&bFMbuonG~BJyHqt{ZaT2c$U*n_g9|!mzVX;zv29m zk8jVq_x(a$e*0!Y?~EA@Zu+I=(HduZ6pMMfXr)TAKTK#`IxL~cCygo$Sk-&Rk(yQd zEx-9fn_0asHSQJP({yYQR>~A?5Y|3ywn=CZ*2_f1hZQutCCoK}c!V7iQsWWknVk|w zG(_lMA0gAMs~^@Y>|s;1A@qnz7A-J)L<>#nM$n^XtjIP8M2k$tAhg(|i5@e@M8;HU z3@tJDik6y_qQ^~46KI*4D_U;OidLBVO`(-$p=gyk51BU2sZPgcRA-G@+6?^(b5Zo9 zY1@*&YR*e&(+QztM}$3QX-9-h60S;k z-L&n5u=Z|*tWF4Tn#&S;cSh)cH^M%%?rwyLE(irXBOEXZoe_3)2`gY;?i|)3?2rj` zK^V~$kJK)B95Kg=TOG`)5@GpGscxv{x}qL6$z5^VFX4!UW2SUBgelz-W^_Y1ZVpJO z+yf!HJHq=WtvkXA38y4{XsYx;n9~y>vj@USb5cTFFN8)t5k59^dm@~ZkR#!gsox7> zNpFM|y%5fr^Ag%5gcUNKdWW?OJ8PEqM!1xK$JO3=d~Vt%Agt|!kd=V&rMWDjcVC45 zeGtAj>-r!>^g}4v7va1~=!>vJ!fpxQm_R>-5&aQT`yu3*of1k7Kq%KA;X9MuA7Q_Q zBN8r}(gP5t3`CeQ0O3b-Ktkm~2+;!(el}?X5l%=rCE-_7We~!gM1;&i2$#)C32}oF z8YLq9ZssN;oRg3v;i{=W7-7i}gcXAk{xs($v>A%faY$HuD=f@BJ|wKCxg_N(N?5pQ zI~13-NeEd(5&Y(|gxXs2RSA_$+tCPX#~@^lM!3UVme6}FLjN%ccbRo#5F*AQ6da3C#UzYH*dbxJ zgsLVmj=iIrNfbq!oucZd=y<4xNfy;Kdqgp&^aQAu87r!74v6ZQiW8x_CJiztCXwx_ ziDVmVs!T$dGZ`Us5<-1*QbODmghrDQ;?3O2210im-MXLe^A-mgcgA-qR8KPeW*J)=fi*n1N7mIzn5MFdbos zgxwO_o4^c&5i=1|XCQPmJ0+A#M<_QF;ck;W6JfuEBNDop(&-3OG7x5@BXlzdBvif^ zAvy!0he^voI3eMbgkGk~z5JSUA42B62npt-gt+?=8r_G`*UY^S;hcmV3H?p|`w^Br zfUx3zgn{O~gf_FZV?4mrO*Bg%K)5sukE;*hF~qc;g|PNPgsfQzN#?SI-m?+or92Sc1kGq5JI`R2%}B%T!j4+jz}15 zNFwvyVLpUMfl!VEq%6x=5nFyKl5z@>_32_f2G|EJn zX69xhoRg3vVTP&yFv5~Y5LP^lkZ#UPXtMyJ<0A<7nx&5*T#|5A!u_W00)({-5waE_ z%rciH^nMhf|3ZY>X5B)B2pgf`qX=_N!lMW~B`MutUOb3D23pN`w)s5K>nn zWSN~3O07mHw+dmSNnVApU&0Xyn@#D}2vgP|%vg=E#T<}O`3Z#RH3%=7v^5APB%G44 z-Bfu3Va}5XnNJ|>G$$p*J%!NdNrYWy?vn`TB;-igZR$UTu;gik6;C0&YR*e&^9(}A zrxEs;rB5SVl5kbR>!$592y353$a)6hO>cfGln}QOq0t6}kImc-2K*-vR@TIvdq4ySq{x2YWZPvYj z5U~}Z;1-1QCSeQ04hg#@d}9Jz5k|a-kh&Ei$Ly3)Y8yhi7ZJWQ$uA=8mvBVFMN@hk z!j$a@Gqxf8XbwoIyaOS6JHpQBM1~$9L((A>}HHP8=`evUWE@*2@Tf zb6G;~R}lK|M#yW{?M8@r6`|lO2mzDu3c?NvyCvi|fmabmyoQkaDndcCQ$nddgvz~! zP}n5DhOl445eY?2={*Qj_9D#KgHYTYkWl$`gy_8pB~030gcA}@Nw~#Sc^zTS8wi=N zBa}8LCB(gn(C7_>vS#iZ2M%mNLkKlY@*#x%5{^iSF{KY9OgVxu<1j*Pb3j7nw-KU`Ak;N!M-Wa( zI3*$0RCya=&QXNSw-M@_lM>?IL1=UoA>PbAif~Rsj)X?0{yPXujv=gg2cfY!FQLu5 z2px|hG&M_)AzYGhRYG&q_FaUv#}TsLMQCX*OX&R`LjU6kt655-<`v@aGKuCQbp`+O;q11;6a1|iuboI%(jVYh^POyE<55oZxnKSfA2J0+C*458dvgwZDXEW&;XM7ErzA`^RlY!&^Cd#&7YJ$Qq=dMy5E^}n zFwM;U65*VL90@Z_{jU&~e2uW;D};1&UP7C52pzvhxYsQG8sUsaIWM8jj|d%qKv-jz z{(x{v!c_@Rnzlb8to;cg>qmsA&1DI_e@5v46T-7*-A@P+zaSL+8DX7C_!(h`gxwOJ zGl5?aM*ND9`U^sq*(ssaC4_RnB5X9tzas3Ha74mpQ~DCZl*@iEPB3zPiRl@70?H>qh|3t|81K~|`8DVj6i|+Und!JeNCk_!| zR>8#uEsh_H6Rcig2N!SV_aPGqgAQ*`46_>NH=h=_8rp-R^W+QtuM(ZAZr@PAnrT_L z)!$ydu=SGVpVXZ1zip47%?-j=D})%2D)~iG1l@MHdd=z97b`=0p`7H##MSKbr2#H=l2Bxv@@p zN#j%a)7!j#w9HH8R@kh))B3_%_SE)=@3K}Fur8n6UcHXBGTiF<_4c><`*oF7VcRU2 zk*B807-Rka^jmE^{y(-YGc4brH#LmBTz=S8+iNv3_w2Q*aIRdu*NW$wd~B~(JiVsl zz)NI!@<7-5A}H^qIv>5MB2C}l<;_&*v)t441xelwcRnl7_;J1@$}6hQM{l(#t-cG~ z*p+;%JxyO?WxDB;?puSXFFooth*pyLJcY)O^L^d6j^e%+qYU+pRpzeqdDhENuTaBbuU1fyX?*7d)*r+T-b-_@bA%4B~Q6+vaIy(N=nz z-uY3%k)S8gX9pTT`b){aUK04c&Uo+H~h+p%x+X>fJCVccll7e@DdY-n|)zY1}RT_BW>z?CX zI0ijUZ!sxY8Qeuc6Hn7xS{0B3G@;(|G`(HS-zIS8(>_nDimmT{>!Y`!l(rgpL0@Ut zSRe4jXu?IjnWWdH$L%5;W{dz}BiR*%K3h;T~^V4!Yu1xrR;Q7T8*6Wpb z!g`-eNwkCyczz#wY16fa+aapUKlVgkj`tn&3jV~?w65#YI`zgWPvgCIUp=qIp_j#Y zDcu+AX=gk?-iG&8KvS=M>S@{&)@%K%i_Ust6T)37SS{B}W~yvckV9B4|J>7>5#H#v z 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 diff --git a/projects/website/package.json b/projects/website/package.json index f6ba20c..c1103e0 100644 --- a/projects/website/package.json +++ b/projects/website/package.json @@ -37,9 +37,9 @@ "next-build-id": "^3.0.0", "next-themes": "^0.3.0", "node-cache": "^5.1.2", - "react": "19.0.0-rc-d5bba18b-20241009", + "react": "19.0.0-rc-3edc000d-20240926", "react-chartjs-2": "^5.2.0", - "react-dom": "19.0.0-rc-d5bba18b-20241009", + "react-dom": "19.0.0-rc-3edc000d-20240926", "react-hook-form": "^7.53.0", "tailwind-merge": "^2.5.2", "tailwindcss-animate": "^1.0.7", diff --git a/projects/website/src/app/(pages)/leaderboard/[...slug]/page.tsx b/projects/website/src/app/(pages)/leaderboard/[...slug]/page.tsx index 27b7cb8..cd74385 100644 --- a/projects/website/src/app/(pages)/leaderboard/[...slug]/page.tsx +++ b/projects/website/src/app/(pages)/leaderboard/[...slug]/page.tsx @@ -5,6 +5,7 @@ import { getAverageColor } from "@/common/image-utils"; import { LeaderboardData } from "@/components/leaderboard/leaderboard-data"; import { scoresaberService } from "@ssr/common/service/impl/scoresaber"; import ScoreSaberLeaderboardScoresPageToken from "@ssr/common/types/token/scoresaber/score-saber-leaderboard-scores-page-token"; +import NodeCache from "node-cache"; import ScoreSaberLeaderboardToken from "@ssr/common/types/token/scoresaber/score-saber-leaderboard-token"; const UNKNOWN_LEADERBOARD = { @@ -27,6 +28,8 @@ type LeaderboardData = { page: number; }; +const leaderboardCache = new NodeCache({ stdTTL: 60, checkperiod: 120 }); + /** * Gets the leaderboard data and scores * @@ -39,17 +42,25 @@ const getLeaderboardData = async ({ params }: Props, fetchScores: boolean = true const id = slug[0]; // The leaderboard id const page = parseInt(slug[1]) || 1; // The page number + const cacheId = `${id}-${page}`; + if (leaderboardCache.has(cacheId)) { + return leaderboardCache.get(cacheId) as LeaderboardData; + } + const leaderboard = await scoresaberService.lookupLeaderboard(id); let scores: ScoreSaberLeaderboardScoresPageToken | undefined; if (fetchScores) { scores = await scoresaberService.lookupLeaderboardScores(id + "", page); } - return { + const leaderboardData = { page: page, leaderboard: leaderboard, scores: scores, }; + + leaderboardCache.set(cacheId, leaderboardData); + return leaderboardData; }; export async function generateMetadata(props: Props): Promise { diff --git a/projects/website/src/app/(pages)/player/[...slug]/page.tsx b/projects/website/src/app/(pages)/player/[...slug]/page.tsx index 4488e24..f19057c 100644 --- a/projects/website/src/app/(pages)/player/[...slug]/page.tsx +++ b/projects/website/src/app/(pages)/player/[...slug]/page.tsx @@ -35,6 +35,8 @@ type PlayerData = { search: string; }; +const playerCache = new NodeCache({ stdTTL: 60, checkperiod: 120 }); + /** * Gets the player data and scores * @@ -49,6 +51,11 @@ const getPlayerData = async ({ params }: Props, fetchScores: boolean = true): Pr const page = parseInt(slug[2]) || 1; // The page number const search = (slug[3] as string) || ""; // The search query + const cacheId = `${id}-${sort}-${page}-${search}`; + if (playerCache.has(cacheId)) { + return playerCache.get(cacheId) as PlayerData; + } + const playerToken = await scoresaberService.lookupPlayer(id); const player = playerToken && (await getScoreSaberPlayerFromToken(playerToken, config.siteApi, cookies().get("playerId")?.value)); @@ -62,13 +69,15 @@ const getPlayerData = async ({ params }: Props, fetchScores: boolean = true): Pr }); } - return { + const playerData = { sort: sort, page: page, search: search, player: player, scores: scores, }; + playerCache.set(cacheId, playerData); + return playerData; }; export async function generateMetadata(props: Props): Promise {