From 4936ff897881b284fb6fa013ef2b29920e0324f8 Mon Sep 17 00:00:00 2001 From: creations Date: Sun, 18 May 2025 17:48:29 -0400 Subject: [PATCH] move all from /api, turn this into backend only ( remove ejs ) --- .env.example | 1 + .vscode/extensions.json | 1 - config/index.ts | 5 ++- package.json | 2 -- src/lib/ejs.ts | 26 ---------------- src/routes/api/index.ts | 15 --------- .../{api => }/auth/email/verify/[code].ts | 0 .../{api => }/auth/email/verify/request.ts | 0 src/routes/{api => }/auth/login.ts | 0 src/routes/{api => }/auth/logout.ts | 0 src/routes/{api => }/auth/register.ts | 0 src/routes/{api/user => }/files.ts | 0 src/routes/{api => }/files/delete[query].ts | 0 src/routes/{api => }/files/upload.ts | 0 src/routes/index.ts | 19 ++++++------ src/routes/{api/user => }/info[query].ts | 0 src/routes/{api => }/invite/create.ts | 0 src/routes/{api => }/invite/delete[invite].ts | 0 src/routes/{api => }/settings/set.ts | 0 src/routes/{api => }/user/avatar/delete.ts | 0 src/routes/{api => }/user/avatar/set.ts | 0 src/views/global.ejs | 31 ------------------- src/views/index.ejs | 9 ------ types/ejs.d.ts | 3 -- 24 files changed, 14 insertions(+), 98 deletions(-) delete mode 100644 src/lib/ejs.ts delete mode 100644 src/routes/api/index.ts rename src/routes/{api => }/auth/email/verify/[code].ts (100%) rename src/routes/{api => }/auth/email/verify/request.ts (100%) rename src/routes/{api => }/auth/login.ts (100%) rename src/routes/{api => }/auth/logout.ts (100%) rename src/routes/{api => }/auth/register.ts (100%) rename src/routes/{api/user => }/files.ts (100%) rename src/routes/{api => }/files/delete[query].ts (100%) rename src/routes/{api => }/files/upload.ts (100%) rename src/routes/{api/user => }/info[query].ts (100%) rename src/routes/{api => }/invite/create.ts (100%) rename src/routes/{api => }/invite/delete[invite].ts (100%) rename src/routes/{api => }/settings/set.ts (100%) rename src/routes/{api => }/user/avatar/delete.ts (100%) rename src/routes/{api => }/user/avatar/set.ts (100%) delete mode 100644 src/views/global.ejs delete mode 100644 src/views/index.ejs delete mode 100644 types/ejs.d.ts diff --git a/.env.example b/.env.example index e3b8e92..b4aa814 100644 --- a/.env.example +++ b/.env.example @@ -5,6 +5,7 @@ PORT=9090 # Replace with your domain name or IP address # If you are using a reverse proxy, set the FQDN to your domain name FQDN=localhost:9090 +FRONTEND_URL=http://localhost:8080 PGHOST=localhost PGPORT=5432 diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 34232ea..4cfd4bc 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,7 +2,6 @@ "recommendations": [ "mikestead.dotenv", "EditorConfig.EditorConfig", - "leonzalion.vscode-ejs", "biomejs.biome" ] } diff --git a/config/index.ts b/config/index.ts index 527c43c..bdd2845 100644 --- a/config/index.ts +++ b/config/index.ts @@ -18,12 +18,15 @@ const dataType: { type: string; path: string | undefined } = { : undefined, }; +const frontendUrl: string = process.env.FRONTEND_URL || "http://localhost:8080"; + function verifyRequiredVariables(): void { const requiredVariables = [ "HOST", "PORT", "FQDN", + "FRONTEND_URL", "PGHOST", "PGPORT", @@ -58,4 +61,4 @@ function verifyRequiredVariables(): void { export * from "@config/jwt"; export * from "@config/redis"; -export { environment, dataType, verifyRequiredVariables }; +export { environment, dataType, verifyRequiredVariables, frontendUrl }; diff --git a/package.json b/package.json index 25496ce..6a99842 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "devDependencies": { "@biomejs/biome": "^1.9.4", "@types/bun": "^1.2.13", - "@types/ejs": "^3.1.5", "@types/fluent-ffmpeg": "^2.1.27", "@types/image-thumbnail": "^1.0.4", "@types/luxon": "^3.6.2", @@ -26,7 +25,6 @@ }, "dependencies": { "@creations.works/logger": "^1.0.3", - "ejs": "^3.1.10", "eta": "^3.5.0", "exiftool-vendored": "^30.0.0", "fast-jwt": "6.0.1", diff --git a/src/lib/ejs.ts b/src/lib/ejs.ts deleted file mode 100644 index 6544009..0000000 --- a/src/lib/ejs.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { resolve } from "node:path"; -import { renderFile } from "ejs"; - -export async function renderEjsTemplate( - viewName: string | string[], - data: EjsTemplateData, - headers?: Record, -): Promise { - let templatePath: string; - - if (Array.isArray(viewName)) { - templatePath = resolve("src", "views", ...viewName); - } else { - templatePath = resolve("src", "views", viewName); - } - - if (!templatePath.endsWith(".ejs")) { - templatePath += ".ejs"; - } - - const html: string = await renderFile(templatePath, data); - - return new Response(html, { - headers: { "Content-Type": "text/html", ...headers }, - }); -} diff --git a/src/routes/api/index.ts b/src/routes/api/index.ts deleted file mode 100644 index 9461be4..0000000 --- a/src/routes/api/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -const routeDef: RouteDef = { - method: "GET", - accepts: "*/*", - returns: "application/json", -}; - -async function handler(): Promise { - // TODO: Put something useful here - - return Response.json({ - message: "Hello, World!", - }); -} - -export { handler, routeDef }; diff --git a/src/routes/api/auth/email/verify/[code].ts b/src/routes/auth/email/verify/[code].ts similarity index 100% rename from src/routes/api/auth/email/verify/[code].ts rename to src/routes/auth/email/verify/[code].ts diff --git a/src/routes/api/auth/email/verify/request.ts b/src/routes/auth/email/verify/request.ts similarity index 100% rename from src/routes/api/auth/email/verify/request.ts rename to src/routes/auth/email/verify/request.ts diff --git a/src/routes/api/auth/login.ts b/src/routes/auth/login.ts similarity index 100% rename from src/routes/api/auth/login.ts rename to src/routes/auth/login.ts diff --git a/src/routes/api/auth/logout.ts b/src/routes/auth/logout.ts similarity index 100% rename from src/routes/api/auth/logout.ts rename to src/routes/auth/logout.ts diff --git a/src/routes/api/auth/register.ts b/src/routes/auth/register.ts similarity index 100% rename from src/routes/api/auth/register.ts rename to src/routes/auth/register.ts diff --git a/src/routes/api/user/files.ts b/src/routes/files.ts similarity index 100% rename from src/routes/api/user/files.ts rename to src/routes/files.ts diff --git a/src/routes/api/files/delete[query].ts b/src/routes/files/delete[query].ts similarity index 100% rename from src/routes/api/files/delete[query].ts rename to src/routes/files/delete[query].ts diff --git a/src/routes/api/files/upload.ts b/src/routes/files/upload.ts similarity index 100% rename from src/routes/api/files/upload.ts rename to src/routes/files/upload.ts diff --git a/src/routes/index.ts b/src/routes/index.ts index 99beef0..b29e27c 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -1,4 +1,4 @@ -import { renderEjsTemplate } from "@lib/ejs"; +import { frontendUrl } from "@config"; const routeDef: RouteDef = { method: "GET", @@ -7,15 +7,14 @@ const routeDef: RouteDef = { }; async function handler(request: ExtendedRequest): Promise { - if (!request.session) { - return Response.redirect("/auth/login"); - } - - const ejsTemplateData: EjsTemplateData = { - title: "Hello, World!", - }; - - return await renderEjsTemplate("index", ejsTemplateData); + return Response.json( + { + success: true, + code: 200, + message: `This is the api for ${frontendUrl}`, + }, + { status: 200 }, + ); } export { handler, routeDef }; diff --git a/src/routes/api/user/info[query].ts b/src/routes/info[query].ts similarity index 100% rename from src/routes/api/user/info[query].ts rename to src/routes/info[query].ts diff --git a/src/routes/api/invite/create.ts b/src/routes/invite/create.ts similarity index 100% rename from src/routes/api/invite/create.ts rename to src/routes/invite/create.ts diff --git a/src/routes/api/invite/delete[invite].ts b/src/routes/invite/delete[invite].ts similarity index 100% rename from src/routes/api/invite/delete[invite].ts rename to src/routes/invite/delete[invite].ts diff --git a/src/routes/api/settings/set.ts b/src/routes/settings/set.ts similarity index 100% rename from src/routes/api/settings/set.ts rename to src/routes/settings/set.ts diff --git a/src/routes/api/user/avatar/delete.ts b/src/routes/user/avatar/delete.ts similarity index 100% rename from src/routes/api/user/avatar/delete.ts rename to src/routes/user/avatar/delete.ts diff --git a/src/routes/api/user/avatar/set.ts b/src/routes/user/avatar/set.ts similarity index 100% rename from src/routes/api/user/avatar/set.ts rename to src/routes/user/avatar/set.ts diff --git a/src/views/global.ejs b/src/views/global.ejs deleted file mode 100644 index 8815e98..0000000 --- a/src/views/global.ejs +++ /dev/null @@ -1,31 +0,0 @@ - - - - -<% if (title) { %> - <%= title %> -<% } %> - - - -<% if (typeof styles !== "undefined") { %> - <% styles.forEach(style => { %> - - <% }) %> -<% } %> - -<% if (typeof scripts !== "undefined") { %> - <% scripts.forEach(script => { %> - <% if (typeof script === "string") { %> - - <% } else if (Array.isArray(script)) { %> - <% if (script[1]) { %> - - <% } else { %> - - <% } %> - <% } %> - <% }) %> -<% } %> - - diff --git a/src/views/index.ejs b/src/views/index.ejs deleted file mode 100644 index dfc2c62..0000000 --- a/src/views/index.ejs +++ /dev/null @@ -1,9 +0,0 @@ - - - - <%- include("global", { styles: [], scripts: [] }) %> - - - - - diff --git a/types/ejs.d.ts b/types/ejs.d.ts deleted file mode 100644 index 486a4a4..0000000 --- a/types/ejs.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -interface EjsTemplateData { - [key: string]: string | number | boolean | object | undefined | null; -}