mirror of
https://github.com/github/codeql-action.git
synced 2025-12-27 01:30:10 +08:00
44 lines
1.1 KiB
TypeScript
44 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);
|
|
}
|