@benshi.ai/js-sdk
Version:
Benshi SDK
28 lines (21 loc) • 805 B
text/typescript
import { default as semverMaxSatisfying } from 'semver/ranges/max-satisfying'
const filePrefix = 'sdk-'
const fileExtension = '.js'
export interface VersionsManifest {
lastUpdate: number,
files: Array<string>
}
export const getLatestPatch = (version, availableVersions) => {
const versionToSearch = `~${version}`
const foundVersion = semverMaxSatisfying(availableVersions, versionToSearch)
if (!foundVersion) {
throw new Error('version-not-found')
}
return foundVersion
}
export const getListOfVersionsFromManifest = (manifest: VersionsManifest): Array<string> => {
return manifest.files.map(filename => filename.slice(filePrefix.length, -fileExtension.length))
}
export const getFilenameForVersion = (version) => {
return `${filePrefix}${version}.js`
}