mirror of
https://github.com/github/codeql-action.git
synced 2026-01-06 14:40:10 +08:00
45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
// All the languages supported by CodeQL
|
|
export enum Language {
|
|
csharp = 'csharp',
|
|
cpp = 'cpp',
|
|
go = 'go',
|
|
java = 'java',
|
|
javascript = 'javascript',
|
|
python = 'python',
|
|
}
|
|
|
|
// Additional names for languages
|
|
const LANGUAGE_ALIASES: {[lang: string]: Language} = {
|
|
'c': Language.cpp,
|
|
'c++': Language.cpp,
|
|
'c#': Language.csharp,
|
|
'typescript': Language.javascript,
|
|
};
|
|
|
|
// Translate from user input or GitHub's API names for languages to CodeQL's names for languages
|
|
export function parseLanguage(language: string): Language | undefined {
|
|
// Normalise to lower case
|
|
language = language.toLowerCase();
|
|
|
|
// See if it's an exact match
|
|
if (language in Language) {
|
|
return language as Language;
|
|
}
|
|
|
|
// Check language aliases
|
|
if (language in LANGUAGE_ALIASES) {
|
|
return LANGUAGE_ALIASES[language];
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
|
|
export function isTracedLanguage(language: Language): boolean {
|
|
return ['cpp', 'java', 'csharp'].includes(language);
|
|
}
|
|
|
|
export function isScannedLanguage(language: Language): boolean {
|
|
return !isTracedLanguage(language);
|
|
}
|