From 5f0c06216d26da783850453dc8e6778319f72232 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Thu, 8 Feb 2024 14:07:01 +0100 Subject: [PATCH] frontend using bun + elysia --- .drone.yml | 5 +- .gitignore | 1 - frontend/.gitignore | 42 ++ frontend/Dockerfile | 35 +- frontend/README.md | 15 +- frontend/bun.lockb | Bin 1573 -> 51935 bytes frontend/package-lock.json | 665 +++++++++++++++--- frontend/package.json | 21 +- .../{static/index.css => public/style.css} | 10 +- frontend/src/components/card.tsx | 70 -- frontend/src/index.ts | 30 + frontend/src/index.tsx | 15 - frontend/src/layout/footer.tsx | 111 --- frontend/src/layout/layout.tsx | 35 - frontend/src/layout/navigation.tsx | 107 --- frontend/src/{index.css => style.css} | 0 frontend/tsconfig.json | 104 ++- 17 files changed, 802 insertions(+), 464 deletions(-) create mode 100644 frontend/.gitignore rename frontend/{static/index.css => public/style.css} (97%) delete mode 100644 frontend/src/components/card.tsx create mode 100644 frontend/src/index.ts delete mode 100644 frontend/src/index.tsx delete mode 100644 frontend/src/layout/footer.tsx delete mode 100644 frontend/src/layout/layout.tsx delete mode 100644 frontend/src/layout/navigation.tsx rename frontend/src/{index.css => style.css} (100%) diff --git a/.drone.yml b/.drone.yml index f22f816..c8ea9c8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,9 +6,10 @@ steps: - name: Build frontend dockerfile image: docker commands: - - docker build -t web-frontend -f Dockerfile frontend + - docker build -t web-frontend -f frontend/Dockerfile frontend - name: Build backend dockerfile image: docker commands: - - docker build -t web-frontend -f Dockerfile backend + - docker build -t web-backend -f backend/Dockerfile backend + diff --git a/.gitignore b/.gitignore index c2658d7..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -node_modules/ diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..87e5610 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,42 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env.local +.env.development.local +.env.test.local +.env.production.local + +# vercel +.vercel + +**/*.trace +**/*.zip +**/*.tar.gz +**/*.tgz +**/*.log +package-lock.json +**/*.bun \ No newline at end of file diff --git a/frontend/Dockerfile b/frontend/Dockerfile index ce5d383..4cd6dc6 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,4 +1,35 @@ -FROM oven/bun +FROM docker.io/oven/bun as base +WORKDIR /usr/src/app +# install dependencies into temp directory +FROM base AS install +RUN mkdir -p /temp/dev +COPY package.json bun.lockb /temp/dev/ +RUN cd /temp/dev && bun install --frozen-lockfile -RUN bun install --production +# install with --production (exclude devDependencies) +RUN mkdir -p /temp/prod +COPY package.json bun.lockb /temp/prod/ +RUN cd /temp/prod && bun install --frozen-lockfile --production + +# copy node_modules from temp directory +# then copy all (non-ignored) project files into the image +FROM base AS prerelease +COPY --from=install /temp/dev/node_modules node_modules +COPY . . + +# [optional] tests & build +ENV NODE_ENV=production +RUN bun test +RUN bun run build + +# copy production dependencies and source code into final image +FROM base AS release +COPY --from=install /temp/prod/node_modules node_modules +COPY --from=prerelease /usr/src/app/index.ts . +COPY --from=prerelease /usr/src/app/package.json . + +# run the app +USER bun +EXPOSE 3000/tcp +ENTRYPOINT [ "bun", "run", "index.ts" ] \ No newline at end of file diff --git a/frontend/README.md b/frontend/README.md index a2d0450..688c87e 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,8 +1,15 @@ +# Elysia with Bun runtime + +## Getting Started +To get started with this template, simply paste this command into your terminal: +```bash +bun create elysia ./elysia-example ``` -bun install + +## Development +To start the development server run: +```bash bun run dev ``` -``` -open http://localhost:3000 -``` +Open http://localhost:3000/ with your browser to see the result. \ No newline at end of file diff --git a/frontend/bun.lockb b/frontend/bun.lockb index 8b2df3053e2c3c1632e4107cceecf186967a91db..1edd4ed8631144a5af807cec661e3e703fbd9595 100755 GIT binary patch literal 51935 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 MtMJ}z_y0bB0L=x`#sB~S delta 543 zcmcaVm3b-81U=2`-`6XO|K?lp(W%Iw|CwplCtG&?mNil2zQUt9b1EwX7%)!^ zm$xcshHwyMMt)vCjK|5q&;VnX=c?}4T{)+MH!)bg(fRy}2<}r7?Er-kCPj`pg#SX#c;ta%Em~jK=h&p9Nh{@@!_5=q~B2`zrBWy)nKZ z!{FPW6Ne|iHIZ<*T2{?0-1@0`kLc`z>k?lsFLKZpRNfV|z0@OT(zQ_Yd-*YvIrYsR zy*%+{6@dyfvUPd{{^usE14&6OwOOYA}^Wi05njpFi(Ed;UEii<-h+B z0Cq8mU;z;f3>++ze|4(yfjnvf6>KW*n zGcdry92Uk*jB&<#hK4|?cTnx`SSI%@bl{SJ#$7M#=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -63,9 +83,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -107,6 +127,60 @@ "node": ">= 8" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.32.13", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.11.16", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/any-promise": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", @@ -148,13 +222,12 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -170,9 +243,14 @@ } }, "node_modules/bun-types": { - "version": "1.0.18", + "version": "1.0.26", + "resolved": "https://registry.npmjs.org/bun-types/-/bun-types-1.0.26.tgz", + "integrity": "sha512-VcSj+SCaWIcMb0uSGIAtr8P92zq9q+unavcQmx27fk6HulCthXHBVrdGuXxAZbFtv7bHVjizRzR2mk9r/U8Nkg==", "dev": true, - "license": "MIT" + "dependencies": { + "@types/node": "~20.11.3", + "@types/ws": "~8.5.10" + } }, "node_modules/camelcase-css": { "version": "2.0.1", @@ -184,16 +262,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -206,6 +278,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -222,6 +297,24 @@ "node": ">= 6" } }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", @@ -231,11 +324,26 @@ "node": ">= 6" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "node_modules/cookie": { + "version": "0.6.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } }, "node_modules/cssesc": { "version": "3.0.0", @@ -261,6 +369,56 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", "dev": true }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/elysia": { + "version": "0.8.16", + "resolved": "https://registry.npmjs.org/elysia/-/elysia-0.8.16.tgz", + "integrity": "sha512-SRZLqLtPeeQGlAb5XMK+An+VLHFSEkFCaPuiP5jyu4qWeZHHU7ibmLR4Jub995eW+Dxe7F6ju6eT8kxfwcisaQ==", + "dependencies": { + "@sinclair/typebox": "^0.32.0", + "cookie": "^0.6.0", + "eventemitter3": "^5.0.1", + "fast-decode-uri-component": "^1.0.1", + "fast-querystring": "^1.1.2", + "memoirist": "0.1.10", + "openapi-types": "^12.1.3" + }, + "peerDependencies": { + "@sinclair/typebox": ">= 0.31.0", + "openapi-types": ">= 12.0.0", + "typescript": ">= 5.0.0" + }, + "peerDependenciesMeta": { + "@sinclair/typebox": { + "optional": true + }, + "openapi-types": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "license": "MIT" + }, "node_modules/fast-glob": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", @@ -289,10 +447,17 @@ "node": ">= 6" } }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -310,11 +475,21 @@ "node": ">=8" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/fsevents": { "version": "2.3.3", @@ -340,20 +515,22 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -383,29 +560,6 @@ "node": ">= 0.4" } }, - "node_modules/hono": { - "version": "3.11.7", - "license": "MIT", - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -439,6 +593,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -460,6 +623,30 @@ "node": ">=0.12.0" } }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jiti": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", @@ -484,6 +671,19 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/memoirist": { + "version": "0.1.10", + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -507,15 +707,27 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" } }, "node_modules/mz": { @@ -574,22 +786,17 @@ "node": ">= 6" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } + "node_modules/openapi-types": { + "version": "12.1.3", + "license": "MIT" }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/path-parse": { @@ -598,6 +805,22 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -635,9 +858,9 @@ } }, "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -762,9 +985,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -871,6 +1094,39 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -880,15 +1136,111 @@ "node": ">=0.10.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -899,7 +1251,7 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -915,9 +1267,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.6.tgz", - "integrity": "sha512-AKjF7qbbLvLaPieoKeTjG1+FyNZT6KaJMJPFeQyLfIp7l82ggH1fbHJSsYIvnbTFQOlkh+gBYpyby5GT1LIdLw==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -990,18 +1342,123 @@ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", "dev": true }, + "node_modules/undici-types": { + "version": "5.26.5", + "dev": true, + "license": "MIT" + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yaml": { "version": "2.3.4", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", diff --git a/frontend/package.json b/frontend/package.json index f7dc025..c172e05 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,12 +1,23 @@ { + "name": "frontend", + "version": "1.0.50", "scripts": { - "dev": "bun run --hot src/index.tsx" + "test": "echo \"Error: no test specified\" && exit 1", + "dev": "bun run tailwind:dev | bun run elxsia:dev", + "elxsia:dev": "bun --watch src/index.ts", + "build": "bun run tailwind:build", + "start": "bun run src/index.ts", + "tailwind:build": "bunx tailwindcss -i ./src/style.css -o ./public/style.css --minify", + "tailwind:dev": "bunx tailwindcss -i ./src/style.css -o ./public/style.css --watch" }, "dependencies": { - "hono": "^3.11.7" + "@elysiajs/html": "^0.8.0", + "@elysiajs/static": "^0.8.1", + "elysia": "latest" }, "devDependencies": { - "bun-types": "^1.0.7", - "tailwindcss": "^3.3.6" - } + "bun-types": "latest", + "tailwindcss": "^3.4.1" + }, + "module": "src/index.js" } diff --git a/frontend/static/index.css b/frontend/public/style.css similarity index 97% rename from frontend/static/index.css rename to frontend/public/style.css index 89171ad..e6cf235 100644 --- a/frontend/static/index.css +++ b/frontend/public/style.css @@ -1,5 +1,5 @@ /* -! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com +! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com */ /* @@ -32,9 +32,11 @@ 4. Use the user's configured `sans` font-family by default. 5. Use the user's configured `sans` font-feature-settings by default. 6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS */ -html { +html, +:host { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; @@ -44,12 +46,14 @@ html { -o-tab-size: 4; tab-size: 4; /* 3 */ - font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */ font-feature-settings: normal; /* 5 */ font-variation-settings: normal; /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ } /* diff --git a/frontend/src/components/card.tsx b/frontend/src/components/card.tsx deleted file mode 100644 index 3958ab2..0000000 --- a/frontend/src/components/card.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import type { FC } from 'hono/jsx' - -import { Layout } from '../layout/layout' - -const Card:FC = () => { - return ( -

Blog

- - - -
-
-

- Building a SaaS product as a software developer -

- -

By John Doe

-
- - -
- -
-

- Lorem ipsum dolor sit, amet consectetur adipisicing elit. At velit illum provident a, ipsa - maiores deleniti consectetur nobis et eaque. -

-
- -
-
-
Published
-
31st June, 2021
-
- -
-
Reading time
-
3 minute
-
-
-
-
-
-
- Modern building architecture -
-
-
Company retreats
- Incredible accommodation for your team -

Looking to take your team away on a retreat to enjoy awesome food and take in some sunshine? We have a list of places to do just that.

-
-
-
- -
- ) -} - -export { Card } \ No newline at end of file diff --git a/frontend/src/index.ts b/frontend/src/index.ts new file mode 100644 index 0000000..5e30d98 --- /dev/null +++ b/frontend/src/index.ts @@ -0,0 +1,30 @@ +import { Elysia } from "elysia"; +import { html } from "@elysiajs/html"; +import { staticPlugin } from "@elysiajs/static"; +// import { autoroutes } from "elysia-autoroutes"; +// import { Store } from "./store"; +// // @ts-ignore +// import data from "../package.json"; + +export const server = new Elysia() + .use(html()) + .use(staticPlugin()) + .get("/public/htmx.js", () => + Bun.file("node_modules/htmx.org/dist/htmx.min.js"), + ) + // .state("store", new Store()) + // .state("version", data.version) + .onError(({ code, error }) => { + console.error(code, error); + }) + .get("/", () => "Hello World") + + .listen(Bun.env["PORT"] ?? 3000); + + + +console.log( + `app is running at ${server.server?.hostname}:${server.server?.port}`, +); + +export type ElysiaApp = typeof server; diff --git a/frontend/src/index.tsx b/frontend/src/index.tsx deleted file mode 100644 index ca6d5fd..0000000 --- a/frontend/src/index.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Hono } from 'hono' -import { serveStatic } from 'hono/bun' - -// import type { FC } from 'hono/jsx' - -import { Card } from './components/card' - -const app = new Hono() - -app.get('/', (c) => { - return c.html() -}) -app.use('/static/*', serveStatic({ root: './' })) - -export default app diff --git a/frontend/src/layout/footer.tsx b/frontend/src/layout/footer.tsx deleted file mode 100644 index 5636748..0000000 --- a/frontend/src/layout/footer.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import type { FC } from 'hono/jsx' - -const Footer: FC = () => { - return ( -
-
- - -
-
-
- - - - - - - - - - - - -
- -

- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Incidunt consequuntur amet culpa - cum itaque neque. -

-
- - -
- -

- Copyright © 2022. All rights reserved. -

-
-
- ) -} - -export { Footer } \ No newline at end of file diff --git a/frontend/src/layout/layout.tsx b/frontend/src/layout/layout.tsx deleted file mode 100644 index 616e3e9..0000000 --- a/frontend/src/layout/layout.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import type { FC } from 'hono/jsx' -import { Navigation } from './navigation' -import { Footer } from './footer' - -// import type { Config } from '../tailwind.config' - -const Layout: FC = (props) => { - return ( - - - - - Hello world! - - {/* */} - - - - -
-
- -
-
- { props.children } -
-
-