1
0
Fork 0
mirror of synced 2024-09-20 03:08:18 +12:00
budibase/packages/server/src/app.ts
2023-08-17 16:51:11 +01:00

41 lines
909 B
TypeScript

import Sentry from "@sentry/node"
if (process.env.DD_APM_ENABLED) {
require("./ddApm")
}
// need to load environment first
import env from "./environment"
import * as db from "./db"
db.init()
import { ServiceType } from "@budibase/types"
import { env as coreEnv } from "@budibase/backend-core"
coreEnv._set("SERVICE_TYPE", ServiceType.APPS)
import { apiEnabled } from "./features"
import createKoaApp from "./koa"
import Koa from "koa"
import { Server } from "http"
import { startup } from "./startup"
let app: Koa, server: Server
async function start() {
if (apiEnabled()) {
const koa = createKoaApp()
app = koa.app
server = koa.server
}
await startup(app, server)
if (env.isProd()) {
env._set("NODE_ENV", "production")
Sentry.init()
}
}
start().catch(err => {
console.error(`Failed server startup - ${err.message}`)
})
export function getServer() {
return server
}