@budibase/server
Version:
Budibase Web Server
29 lines (26 loc) • 713 B
text/typescript
import { Ctx } from "@budibase/types"
import { isDevWorkspaceID, isProdWorkspaceID } from "../db/utils"
export enum AppType {
DEV = "dev",
PROD = "prod",
}
export function middleware({ appType }: { appType?: AppType } = {}) {
return (ctx: Ctx, next: () => Promise<void>) => {
const workspaceId = ctx.appId
if (
appType === AppType.DEV &&
workspaceId &&
!isDevWorkspaceID(workspaceId)
) {
ctx.throw(400, "Only apps in development support this endpoint")
}
if (
appType === AppType.PROD &&
workspaceId &&
!isProdWorkspaceID(workspaceId)
) {
ctx.throw(400, "Only apps in production support this endpoint")
}
return next()
}
}