port to Node

This commit is contained in:
split / May 2024-07-11 05:40:07 -07:00
parent 44664d6f17
commit 469b033e2f
Signed by: split
GPG key ID: C325C61F0BF517C0
7 changed files with 776 additions and 183 deletions

View file

@ -2,9 +2,6 @@
FROM node:lts-alpine AS base FROM node:lts-alpine AS base
WORKDIR /usr/src/app WORKDIR /usr/src/app
FROM oven/bun:1-debian AS base2
WORKDIR /usr/src/app
FROM base AS install FROM base AS install
RUN mkdir -p /temp/dev RUN mkdir -p /temp/dev
COPY package.json package-lock.json /temp/dev/ COPY package.json package-lock.json /temp/dev/
@ -23,18 +20,14 @@ FROM base AS prisma-dev
COPY --from=install /temp/dev/node_modules node_modules COPY --from=install /temp/dev/node_modules node_modules
COPY . . COPY . .
RUN npx prisma generate RUN npx prisma generate
FROM base2 AS build
COPY --from=prisma-dev /usr/src/app/node_modules node_modules
COPY . .
# vite build # vite build
RUN NODE_ENV=production bun --bun run build RUN NODE_ENV=production bun --bun run build
FROM base2 AS release FROM base AS release
COPY --from=prisma /usr/src/app/prisma prisma COPY --from=prisma /usr/src/app/prisma prisma
COPY --from=prisma /usr/src/app/node_modules node_modules COPY --from=prisma /usr/src/app/node_modules node_modules
COPY --from=build /usr/src/app/build build COPY --from=build /usr/src/app/build build
COPY --from=build /usr/src/app/package.json . COPY --from=build /usr/src/app/package.json .
EXPOSE 3000/tcp EXPOSE 3000/tcp
CMD [ "bun", "run", "./build/index.js" ] CMD [ "node", "build" ]

BIN
bun.lockb

Binary file not shown.

922
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{ {
"name": "ava", "name": "ava-node",
"version": "1.1.1", "version": "1.1.1",
"private": true, "private": true,
"scripts": { "scripts": {
@ -12,13 +12,13 @@
"format": "prettier --write ." "format": "prettier --write ."
}, },
"devDependencies": { "devDependencies": {
"@sveltejs/adapter-node": "^5.2.0",
"@sveltejs/vite-plugin-svelte": "^3.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/bun": "^1.1.6", "@types/node": "^20.14.10",
"prettier": "^3.1.1", "prettier": "^3.1.1",
"prettier-plugin-svelte": "^3.1.2", "prettier-plugin-svelte": "^3.1.2",
"prisma": "^5.16.2", "prisma": "^5.16.2",
"svelte": "^4.2.7", "svelte": "^4.2.7",
"svelte-adapter-bun": "^0.5.2",
"svelte-check": "^3.6.0", "svelte-check": "^3.6.0",
"tslib": "^2.4.1", "tslib": "^2.4.1",
"typescript": "^5.0.0", "typescript": "^5.0.0",
@ -29,9 +29,9 @@
"@fontsource-variable/inter": "^5.0.18", "@fontsource-variable/inter": "^5.0.18",
"@fontsource-variable/noto-sans-mono": "^5.0.20", "@fontsource-variable/noto-sans-mono": "^5.0.20",
"@prisma/client": "5.16.2", "@prisma/client": "5.16.2",
"@sveltejs/kit": "^2.0.0",
"mime": "^4.0.4", "mime": "^4.0.4",
"sharp": "^0.33.4", "sharp": "^0.33.4"
"@sveltejs/kit": "^2.0.0"
}, },
"trustedDependencies": [ "trustedDependencies": [
"@prisma/client", "@prisma/client",

View file

@ -1,4 +1,4 @@
import { mkdir, readdir, rm } from "node:fs/promises" import { mkdir, readdir, rm, writeFile } from "node:fs/promises"
import { existsSync } from "node:fs" import { existsSync } from "node:fs"
import { join } from "node:path" import { join } from "node:path"
import { prisma } from "./clientsingleton" import { prisma } from "./clientsingleton"
@ -72,7 +72,7 @@ export async function setNewAvatar(uid: string, avatar?: File) {
try { try {
let start = Date.now() let start = Date.now()
let rerenderedAvatarData = await rerenderAvatar(avatarData, x) let rerenderedAvatarData = await rerenderAvatar(avatarData, x)
await Bun.write( await writeFile(
join(userAvatarDirectory, `${x}.${fileExtension}`), join(userAvatarDirectory, `${x}.${fileExtension}`),
rerenderedAvatarData rerenderedAvatarData
) )

View file

@ -1,5 +1,7 @@
import { getPathToAvatarForIdentifier } from '$lib/avatars.js'; import { getPathToAvatarForIdentifier } from '$lib/avatars.js';
import { error } from '@sveltejs/kit'; import { error } from '@sveltejs/kit';
import { readFile } from 'fs/promises';
import mime from "mime";
export async function GET({ params : { identifier, size } }) { export async function GET({ params : { identifier, size } }) {
let avPath = await getPathToAvatarForIdentifier(identifier, size) let avPath = await getPathToAvatarForIdentifier(identifier, size)
@ -7,5 +9,9 @@ export async function GET({ params : { identifier, size } }) {
if (!avPath) if (!avPath)
throw error(404, "Avatar at this size not found") throw error(404, "Avatar at this size not found")
return new Response(Bun.file(avPath)) return new Response(await readFile(avPath), {
headers: {
"Content-Type": mime.getType(avPath) || ""
}
})
} }

View file

@ -1,4 +1,4 @@
import adapter from 'svelte-adapter-bun'; import adapter from '@sveltejs/adapter-node';
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
/** @type {import('@sveltejs/kit').Config} */ /** @type {import('@sveltejs/kit').Config} */