FROM denoland/deno:2.9.6

ENV DENO_NO_UPDATE_CHECK=1 DENO_NO_PROMPT=1

# Keep the same sibling layout as the source repository.
WORKDIR /workspace/api
COPY --from=api_source deno.json deno.lock ./
RUN deno install --frozen --node-modules-dir=auto
COPY --from=api_source src ./src
COPY --from=api_source deno-env.d.ts ./

WORKDIR /workspace/client
COPY deno.lock package.json ./
RUN deno install --frozen
COPY tsconfig.json vite.config.ts vitest.setup.ts ./
COPY src ./src
RUN deno task prepare

CMD ["deno", "task", "dev"]
