2026-01-25 22:19:05 +00:00
|
|
|
import { trpcServer } from "@hono/trpc-server"
|
2026-01-25 14:54:08 +00:00
|
|
|
import { Hono } from "hono"
|
|
|
|
|
|
2026-01-25 16:21:00 +00:00
|
|
|
import { registerAuthHandlers } from "./auth/http.ts"
|
2026-01-25 22:47:53 +00:00
|
|
|
import { LocationService } from "./location/service.ts"
|
2026-01-25 22:19:05 +00:00
|
|
|
import { createContext } from "./trpc/context.ts"
|
2026-01-25 22:47:53 +00:00
|
|
|
import { createTRPCRouter } from "./trpc/router.ts"
|
2026-02-13 19:16:33 +00:00
|
|
|
import { WeatherService } from "./weather/service.ts"
|
2026-01-25 16:21:00 +00:00
|
|
|
|
2026-01-25 22:47:53 +00:00
|
|
|
function main() {
|
|
|
|
|
const locationService = new LocationService()
|
2026-01-25 14:54:08 +00:00
|
|
|
|
2026-02-13 19:16:33 +00:00
|
|
|
const weatherService = new WeatherService({
|
|
|
|
|
credentials: {
|
|
|
|
|
privateKey: process.env.WEATHERKIT_PRIVATE_KEY!,
|
|
|
|
|
keyId: process.env.WEATHERKIT_KEY_ID!,
|
|
|
|
|
teamId: process.env.WEATHERKIT_TEAM_ID!,
|
|
|
|
|
serviceId: process.env.WEATHERKIT_SERVICE_ID!,
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const trpcRouter = createTRPCRouter({ locationService, weatherService })
|
2026-01-25 14:54:08 +00:00
|
|
|
|
2026-01-25 22:47:53 +00:00
|
|
|
const app = new Hono()
|
2026-01-25 16:21:00 +00:00
|
|
|
|
2026-01-25 22:47:53 +00:00
|
|
|
app.get("/health", (c) => c.json({ status: "ok" }))
|
|
|
|
|
|
|
|
|
|
registerAuthHandlers(app)
|
|
|
|
|
|
|
|
|
|
app.use(
|
|
|
|
|
"/trpc/*",
|
|
|
|
|
trpcServer({
|
|
|
|
|
router: trpcRouter,
|
|
|
|
|
createContext,
|
|
|
|
|
}),
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return app
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const app = main()
|
2026-01-25 22:19:05 +00:00
|
|
|
|
2026-01-25 14:54:08 +00:00
|
|
|
export default {
|
|
|
|
|
port: 3000,
|
|
|
|
|
fetch: app.fetch,
|
|
|
|
|
}
|