From 1b639f54339c66aeb528b45f77107e8f93fd6d84 Mon Sep 17 00:00:00 2001 From: Derock Date: Sun, 17 Sep 2023 12:09:56 -0400 Subject: [PATCH] feat: working sample webserver --- apps/api/package.json | 7 ++++--- apps/api/src/controllers/auth/index.ts | 10 +++++++-- apps/api/src/env.ts | 2 +- apps/api/src/index.ts | 27 +++++++++++++++++++++---- bun.lockb | Bin 6037 -> 8256 bytes 5 files changed, 36 insertions(+), 10 deletions(-) mode change 100644 => 100755 bun.lockb diff --git a/apps/api/package.json b/apps/api/package.json index 610f838..64e056b 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -3,16 +3,17 @@ "version": "1.0.50", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "dev": "bun run --watch src/index.ts" + "dev": "bun --watch src/index.ts" }, "dependencies": { + "@elysiajs/cookie": "^0.6.1", "@elysiajs/swagger": "^0.6.2", "@t3-oss/env-core": "^0.6.1", - "elysia": "^0.6.23", + "elysia": "latest", "zod": "^3.22.2" }, "devDependencies": { "bun-types": "latest" }, "module": "src/index.js" -} \ No newline at end of file +} diff --git a/apps/api/src/controllers/auth/index.ts b/apps/api/src/controllers/auth/index.ts index c8f9b90..addee9c 100644 --- a/apps/api/src/controllers/auth/index.ts +++ b/apps/api/src/controllers/auth/index.ts @@ -1,3 +1,9 @@ -import Elysia from "elysia"; +import { Elysia } from "elysia"; +import type { BaseElysiaContext } from "../.."; -export const authController = new Elysia({ prefix: "/auth" }); +export const authController = new Elysia<"/auth", BaseElysiaContext>({ + prefix: "/auth", +}).get("/cookie", (...args) => { + console.log(args); + return "cookie"; +}); diff --git a/apps/api/src/env.ts b/apps/api/src/env.ts index 2870275..f292f96 100644 --- a/apps/api/src/env.ts +++ b/apps/api/src/env.ts @@ -6,7 +6,7 @@ export const env = createEnv({ * Serverside environment variables */ server: { - port: z.number(), + port: z.preprocess(Number, z.number()), host: z.string(), }, diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 4ef8f4c..48a86b4 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -1,7 +1,26 @@ import { Elysia } from "elysia"; -import { ElysiaLoader } from "./loader"; +import { cookie } from "@elysiajs/cookie"; import { authController } from "./controllers/auth"; +import { env } from "./env"; -// const app = new ElysiaLoader(new Elysia()).load(import("./controllers/auth")); -let app = new Elysia(); -app = app.use(authController); +// base elysia app with all the plugins +const baseApp = new Elysia().use(cookie()); +type ExtractContext = T extends Elysia ? V : never; +export type BaseElysiaContext = ExtractContext; + +// add in our routes +const withRoutes = baseApp.use(authController); +export type ElysiaWithRoutes = typeof withRoutes; + +// if this is the main module, start the server +if (import.meta.main) { + withRoutes.listen( + { + port: env.port, + hostname: env.host, + }, + (data) => { + console.log(`🚀 listening on ${data.hostname}:${data.port}`); + } + ); +} diff --git a/bun.lockb b/bun.lockb old mode 100644 new mode 100755 index 5e673a622a42d766ef0ced7f5177f8eeca979cff..6d6191a8026c48a34d9c69949a1b8d8525b74466 GIT binary patch delta 2337 zcmd5-e>But6o20_xXcVGh?^H^#_-|heQPeg z0}FZxrL_Rp0^X?NRlr#wzn~D}0WSub4P2yJw@}IV7)rZqz$bw|Q%#A-QQ0{&mHLSI z_}G{zgr{#ju=^&(*#%AU{O%+=ec81>n(*O3s8rw?Gq_b|g_2>hE|8w=JgYCz* zY1e1wIRs@{o%0a)dDazLr&d4P{4DxLCa2GW!U7F1{DRV?=HhC~i%P(9mtb)C-nucR`a5EVmZuU%JibdI0@#xxSHvu-U@%C=DCssi43H|~N zYvRw&2GLE0O0+~{i_>(NdKyFoB3uJ^t53qu)HS6fI-HP##&g(kqz?nqMP#=L5l-w4 zhyX-5iEc~;pz)m8!O1G<-<&KevOq{%Veo%Q>7D*Nk~2c(wi8ILnd7p z1G2+cH8hO!d{PcwNX;XQMjfEZI)!TxD+YT75%+8G;5igVO zk?Hvg(kpX}CAOAj7kXRDb-3amYbxfzslNw?3VKh>utUH3+l(D)G@G$MdT*+%-=r$z zvkPL|!^VRL*2LNwPdS<9%(2=LlM&EjrprOE=EjKqdmxy-Amz}H0*Iu5T+nyy{oyXc> zF00qnEcK8?wsvpL`aZU4958*62sksMf2bzZFYvW7K9bq?=Ow!>FADtUP(v<}EhUnr z(r(}W-_ee4-B+!b2HLv*7!2-l9XQ%P@pO+3?|j0<`!mkJ$ruMr-$(_puE~<3yq%W& zM}2cPCjKoex?1*dQs$ojsx z;Cx_RF;pL-zEYi?Awg6T^IB0%hvnOZlkzu_A@K#JS}#3A$G$7*+7vv}c_JmiGC5nL ze_x5d#R~Sq8B6V&JGV(~bkgNvr%&V#lzzT72j`O_Er(L1pdNQ&Zw+(ot)_`t>eI{X zbTI=aBT74ytBm#&7q8U!nvBr9F(r{@l1-z^z}N_zu&i*GK5IUyL9zoxO|(WZ$fYCq zgOt_;7@9EP1y&RssZ(+kx-b?HW1v$CILZ)vuohYnFt`K?00KlF1L7c48L#Ex-7G8e zG~h~>nSi|H^b^aVLLB+C_yUAT36MA4?e6MT%a=6ws5C-^MEE&t=5)rou*4`yB0|aW zkzk6D{jAE?0y5oxSaUN^UBCRZp~BOVB>xBx zutlbH+sV7eoi%0`UJH6BzBAtip?lbiBa+hX$a3-3$5s~yQyA1t@*_ZOc(_U9qdN+C zI)W!4(=CebJ&KqDK4eQbF}gdcd_Y6DIl6x-e1v=-fQwp}B#8+_Xl_yONRLOyb{6I7 zVNOoKQPl&}=;rnzxeC>TT*1Tn9B*xzN<40cWgK%j>)i&EHI&Jea}2Jl1$Zlitd%$@ zR~_tCANGo)<|jrcdnYEXkD~P-3HFkh=(w=N4GB?7XIjPrgDEy2FC|2MKz{FK4=2qR zU~@w=_9xNtG^3fW{|y6ncwC-w@sUyZo`ESYGMd040t6<^UP%5(NTLxH_mhZlhDvRZ Ok%_vHAmX#S`~Cq-v4)8N delta 1025 zcmbVLdq`7Z6#wqMn@%hD%FR0?M?Of&>*j3AFemgQ6Dq7ogM0-!5mV3zB8dJ-JKufKKm8H?;5)zXJihatd+zxn#TRpe zLS|vnt6+1awxggu5ImH9HgaS3V?$NRG1Z;(2|qR!Y@Jn`i3n|HMGCuH+u3B@HH3y$ zgtQGH$03JhzKg6wJ<1TmBX^;$M^2UP23a3rrMSn)n7yru0}FGaym_(yZNRXw4o^#{ zbj7^j6orsp84)7cBZA~>kF$w!Sds|LD#8Ig>t<@fi*gz+qfCPdls@1&H`5JXu9f}C zz$911xPVu=89#VYVkpW?m_T_7c(q$Ih()-tPPob0Aj+uhYRpd;1?3oAE2x6_8#9m{ zYp$VnCE%i;gl!Q)nSL*A4TZvV|6jMH|I;lYuVztIu{b%_Yt$Tk-?OjfdTEVr&NFAf zaxZ_$J3Q?1eK&6Vy0pLS{;kHN*D4?O_|G-(499)0-t%GJ5Y*>=DXr_*CetDj^dC)2 zTN3fQVnPw^dItMs#eQj^pROefGab)af*`MXc7G8-fn za?Dw2jL#-GgmH`Ix#vYj&v+qbk1{0Z!W7Bio$jP~q!=HaQrOGcLQ*#*0hOGp?V zn0aOZUSpKOC+y?*v