chore: remove mothership versions update from pocketbase version freshener

This commit is contained in:
Ben Allfree 2024-12-04 10:23:57 -08:00
parent d177e870cb
commit 0830491192

View File

@ -1,59 +1,4 @@
import { import { GobotService, LoggerService } from '@'
GobotService,
LoggerService,
MOTHERSHIP_HOOKS_DIR,
PH_ALLOWED_POCKETBASE_SEMVER,
stringify,
} from '@'
import { writeFileSync } from 'fs'
import { prerelease, satisfies } from 'semver'
function compareSemVer(a: string, b: string): number {
// Consider wildcards as higher than any version number, hence represented by a large number for comparison
let splitA = a
.split('.')
.map((x) => (x === '*' ? Number.MAX_SAFE_INTEGER : parseInt(x)))
let splitB = b
.split('.')
.map((x) => (x === '*' ? Number.MAX_SAFE_INTEGER : parseInt(x)))
// Compare each part starting from major, minor, then patch
for (let i = 0; i < 3; i++) {
if (splitA[i] !== splitB[i]) {
return splitB[i]! - splitA[i]! // For descending order, compare b - a
}
}
// If all parts are equal or both have wildcards
return 0
}
function expandAndSortSemVers(semvers: string[]): string[] {
let expandedVersions = new Set<string>() // Use a set to avoid duplicates
// Helper function to add wildcard versions
const addWildcards = (version: string) => {
const parts = version.split('.')
if (parts.length === 3) {
if (parts[0] !== '0') expandedVersions.add(`${parts[0]}.*.*`)
expandedVersions.add(`${parts[0]}.${parts[1]}.*`)
if (parts[0] === '0' && parts[1] !== '0')
expandedVersions.add(`0.${parts[1]}.*`)
}
}
// Add wildcards and original versions to the set
semvers.forEach((version) => {
expandedVersions.add(version)
addWildcards(version)
})
// Add the global wildcard for the latest version
// expandedVersions.add('*')
// Convert the set to an array and sort it using the custom semver comparison function
return Array.from(expandedVersions).sort(compareSemVer)
}
export async function freshenPocketbaseVersions() { export async function freshenPocketbaseVersions() {
const { info } = LoggerService().create(`freshenPocketbaseVersions`) const { info } = LoggerService().create(`freshenPocketbaseVersions`)
@ -64,23 +9,4 @@ export async function freshenPocketbaseVersions() {
const bot = await gobot(`pocketbase`) const bot = await gobot(`pocketbase`)
await bot.update() await bot.update()
await bot.download() await bot.download()
const rawVersions = await bot.versions()
const allowedVersions = rawVersions.filter(
(v) =>
satisfies(v, PH_ALLOWED_POCKETBASE_SEMVER()) && prerelease(v) === null,
)
const versions = expandAndSortSemVers(allowedVersions)
const cjs = `module.exports = ${stringify(versions, null, 2)}`
{
const path = MOTHERSHIP_HOOKS_DIR(`versions.cjs`)
info(`Writing to ${path}`)
writeFileSync(path, cjs)
}
{
const path = bot.cachePath(`versions.cjs`)
info(`Writing to ${path}`)
writeFileSync(path, cjs)
}
return cjs
} }