60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import { APP_DEV_PREFIX, APP_PREFIX } from "../constants"
|
|
import { App } from "@budibase/types"
|
|
const NO_APP_ERROR = "No app provided"
|
|
|
|
export function isDevAppID(appId?: string) {
|
|
if (!appId) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return appId.startsWith(APP_DEV_PREFIX)
|
|
}
|
|
|
|
export function isProdAppID(appId?: string) {
|
|
if (!appId) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return appId.startsWith(APP_PREFIX) && !isDevAppID(appId)
|
|
}
|
|
|
|
export function isDevApp(app: App) {
|
|
if (!app) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return isDevAppID(app.appId)
|
|
}
|
|
|
|
/**
|
|
* Generates a development app ID from a real app ID.
|
|
* @returns the dev app ID which can be used for dev database.
|
|
*/
|
|
export function getDevelopmentAppID(appId: string) {
|
|
if (!appId || appId.startsWith(APP_DEV_PREFIX)) {
|
|
return appId
|
|
}
|
|
// split to take off the app_ element, then join it together incase any other app_ exist
|
|
const split = appId.split(APP_PREFIX)
|
|
split.shift()
|
|
const rest = split.join(APP_PREFIX)
|
|
return `${APP_DEV_PREFIX}${rest}`
|
|
}
|
|
export const getDevAppID = getDevelopmentAppID
|
|
|
|
/**
|
|
* Convert a development app ID to a deployed app ID.
|
|
*/
|
|
export function getProdAppID(appId: string) {
|
|
if (!appId || !appId.startsWith(APP_DEV_PREFIX)) {
|
|
return appId
|
|
}
|
|
// split to take off the app_dev element, then join it together incase any other app_ exist
|
|
const split = appId.split(APP_DEV_PREFIX)
|
|
split.shift()
|
|
const rest = split.join(APP_DEV_PREFIX)
|
|
return `${APP_PREFIX}${rest}`
|
|
}
|
|
|
|
export function extractAppUUID(id: string) {
|
|
const split = id?.split("_") || []
|
|
return split.length ? split[split.length - 1] : null
|
|
}
|