diff --git a/Dockerfile b/Dockerfile index a93edda..8eaf5c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,8 +3,6 @@ FROM oven/bun:latest AS base WORKDIR /app -ENV NODE_ENV=production - # install dependencies into temp directory # this will cache them and speed up future builds FROM base AS install @@ -24,6 +22,7 @@ COPY --from=install /temp/dev/node_modules node_modules COPY . . # [optional] tests & build +ENV NODE_ENV=production # RUN bun test # RUN bun run build @@ -35,4 +34,5 @@ COPY --from=install /temp/prod/node_modules node_modules COPY --from=prerelease /app/ . # run the app -ENTRYPOINT [ "bun", "start" ] + +ENTRYPOINT [ "bun", "run", "start" ] diff --git a/package.json b/package.json index 5567cf1..f4b03d6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "private": true, "scripts": { - "start": "bun src/server.ts", + "start": "bun run src/server.ts", "dev": "bun --watch run src/server.ts", "hot": "bun --hot run src/server.ts", "build": "bun build src/server.ts --compile --minify --sourcemap --target=bun-linux-x64-modern --outfile server", diff --git a/src/server.ts b/src/server.ts index 8bf6ba7..329cb29 100644 --- a/src/server.ts +++ b/src/server.ts @@ -25,9 +25,9 @@ const entriesCacheTimeLimit = 1000 * 15; async function getEntriesCached() { if (entriesCacheTime + entriesCacheTimeLimit < Date.now()) { - const data = await ptApi.query(); - entriesCache = JSON.stringify(data); - entriesCacheTime = Date.now(); + const data = await ptApi.query(); + entriesCache = JSON.stringify(data); + entriesCacheTime = Date.now(); } return entriesCache; } @@ -100,8 +100,9 @@ Bun.serve({ globalThis.loginTokens.add(token); - setTimeout(getEntriesCached, 1); - + if (entriesCacheTime + entriesCacheTimeLimit < Date.now()) { + setTimeout(getEntriesCached, 1); + } return new Response('Login successful', { headers }); } diff --git a/tsconfig.json b/tsconfig.json index 0abd418..9c62f74 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,25 +1,25 @@ { "compilerOptions": { // Environment setup & latest features - "lib": [ - "ESNext", - "DOM", - ], + "lib": ["ESNext"], "target": "ESNext", "module": "ESNext", "moduleDetection": "force", "jsx": "react-jsx", "allowJs": true, + // Bundler mode "moduleResolution": "bundler", "allowImportingTsExtensions": true, "verbatimModuleSyntax": true, "noEmit": true, + // Best practices "strict": true, "skipLibCheck": true, "noFallthroughCasesInSwitch": true, "noUncheckedIndexedAccess": true, + // Some stricter flags (disabled by default) "noUnusedLocals": false, "noUnusedParameters": false,