Chore/fix semver * fix semver versioning * fix semver versioning * Merge branch 'chore/fix-semver' of bitbucket.org:scandic-swap/web into chore/fix-semver * Merge branch 'master' of bitbucket.org:scandic-swap/web into chore/fix-semver * reset to master Approved-by: Linus Flood
33 lines
706 B
TypeScript
33 lines
706 B
TypeScript
const namedBranches = ["release", "master", "test", "stage", "prod"] as const
|
|
|
|
type NamedBranch = (typeof namedBranches)[number] | (string & {})
|
|
|
|
export function getSemver(
|
|
version: string | undefined,
|
|
branch: NamedBranch
|
|
): string | undefined {
|
|
if (!version || typeof version !== "string") {
|
|
return undefined
|
|
}
|
|
|
|
if (version.startsWith("v")) {
|
|
version = version.substring(1)
|
|
}
|
|
|
|
if (!/^\d+\.\d+\.\d+/.test(version)) {
|
|
return undefined
|
|
}
|
|
|
|
if (!namedBranches.includes(branch as any)) {
|
|
let cleanedBranch = branch
|
|
.substring(0, 20)
|
|
.trim()
|
|
.replace(/[^a-zA-Z0-9]/g, "-")
|
|
.toLowerCase()
|
|
|
|
return `${version}-${cleanedBranch}`
|
|
}
|
|
|
|
return version
|
|
}
|