57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
const NO_APP_ERROR = "No app provided"
|
|
const { APP_DEV_PREFIX, APP_PREFIX } = require("./constants")
|
|
|
|
exports.isDevAppID = appId => {
|
|
if (!appId) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return appId.startsWith(APP_DEV_PREFIX)
|
|
}
|
|
|
|
exports.isProdAppID = appId => {
|
|
if (!appId) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return appId.startsWith(APP_PREFIX) && !exports.isDevAppID(appId)
|
|
}
|
|
|
|
exports.isDevApp = app => {
|
|
if (!app) {
|
|
throw NO_APP_ERROR
|
|
}
|
|
return exports.isDevAppID(app.appId)
|
|
}
|
|
|
|
/**
|
|
* Generates a development app ID from a real app ID.
|
|
* @returns {string} the dev app ID which can be used for dev database.
|
|
*/
|
|
exports.getDevelopmentAppID = appId => {
|
|
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}`
|
|
}
|
|
|
|
/**
|
|
* Convert a development app ID to a deployed app ID.
|
|
*/
|
|
exports.getProdAppID = appId => {
|
|
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}`
|
|
}
|
|
|
|
exports.extractAppUUID = id => {
|
|
const split = id?.split("_") || []
|
|
return split.length ? split[split.length - 1] : null
|
|
}
|