Co-authored-by: Evan Bonsignori <evanabonsignori@gmail.com> Co-authored-by: Evan Bonsignori <ebonsignori@github.com>
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
// Versions used by cse-copilot
|
|
import { allVersions } from '@/versions/lib/all-versions'
|
|
const CSE_COPILOT_DOCS_VERSIONS = ['dotcom', 'ghec', 'ghes']
|
|
|
|
// Languages supported by cse-copilot
|
|
const DOCS_LANGUAGES = ['en']
|
|
export function supportedCSECopilotLanguages() {
|
|
return DOCS_LANGUAGES
|
|
}
|
|
|
|
export function getCSECopilotSource(
|
|
version: (typeof CSE_COPILOT_DOCS_VERSIONS)[number],
|
|
language: (typeof DOCS_LANGUAGES)[number],
|
|
) {
|
|
const cseCopilotDocsVersion = getMiscBaseNameFromVersion(version)
|
|
if (!CSE_COPILOT_DOCS_VERSIONS.includes(cseCopilotDocsVersion)) {
|
|
throw new Error(
|
|
`Invalid 'version' in request body: '${version}'. Must be one of: ${CSE_COPILOT_DOCS_VERSIONS.join(', ')}`,
|
|
)
|
|
}
|
|
if (!DOCS_LANGUAGES.includes(language)) {
|
|
throw new Error(
|
|
`Invalid 'language' in request body '${language}'. Must be one of: ${DOCS_LANGUAGES.join(', ')}`,
|
|
)
|
|
}
|
|
return `docs_${version}_${language}`
|
|
}
|
|
|
|
function getMiscBaseNameFromVersion(Version: string): string {
|
|
const miscBaseName =
|
|
Object.values(allVersions).find(
|
|
(info) =>
|
|
info.shortName === Version ||
|
|
info.plan === Version ||
|
|
info.miscVersionName === Version ||
|
|
info.currentRelease === Version,
|
|
)?.miscBaseName || ''
|
|
|
|
if (!miscBaseName) {
|
|
return ''
|
|
}
|
|
|
|
return miscBaseName
|
|
}
|