Files
codeql-action/lib/languages.js
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

62 lines
2.0 KiB
JavaScript
Raw Permalink Normal View History

2020-08-10 11:54:02 +01:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
2023-09-14 15:26:38 +01:00
exports.isScannedLanguage = exports.isTracedLanguage = exports.parseLanguage = exports.LANGUAGE_ALIASES = exports.Language = void 0;
2020-08-10 11:54:02 +01:00
// All the languages supported by CodeQL
2020-08-17 13:34:34 +01:00
var Language;
(function (Language) {
Language["csharp"] = "csharp";
Language["cpp"] = "cpp";
Language["go"] = "go";
Language["java"] = "java";
Language["javascript"] = "javascript";
Language["python"] = "python";
2021-05-20 16:51:17 +02:00
Language["ruby"] = "ruby";
2022-05-27 15:34:41 +01:00
Language["swift"] = "swift";
2023-07-13 11:17:33 +01:00
})(Language || (exports.Language = Language = {}));
2020-08-10 11:54:02 +01:00
// Additional names for languages
exports.LANGUAGE_ALIASES = {
2020-09-14 10:44:43 +01:00
c: Language.cpp,
"c++": Language.cpp,
"c#": Language.csharp,
2022-11-17 10:38:48 -08:00
kotlin: Language.java,
2020-09-14 10:44:43 +01:00
typescript: Language.javascript,
2020-08-10 11:54:02 +01:00
};
2022-11-23 16:16:02 -08:00
/**
* Translate from user input or GitHub's API names for languages to CodeQL's
2023-09-14 15:26:38 +01:00
* names for languages.
2022-11-23 16:16:02 -08:00
*
* @param language The language to translate.
* @returns A language supported by CodeQL, an alias for a language, or
2023-09-14 15:26:38 +01:00
* `undefined` if the input language cannot be parsed into a language supported
2022-11-23 16:16:02 -08:00
* by CodeQL.
*/
2020-08-10 11:54:02 +01:00
function parseLanguage(language) {
// Normalise to lower case
2022-11-23 16:16:02 -08:00
language = language.trim().toLowerCase();
2020-08-10 11:54:02 +01:00
// See if it's an exact match
2020-08-17 13:34:34 +01:00
if (language in Language) {
return language;
2020-08-10 11:54:02 +01:00
}
2022-11-23 16:16:02 -08:00
// Check language aliases, but return the original language name,
// the alias will be resolved later.
if (language in exports.LANGUAGE_ALIASES) {
2023-09-14 15:26:38 +01:00
return exports.LANGUAGE_ALIASES[language];
2020-08-10 11:54:02 +01:00
}
return undefined;
}
exports.parseLanguage = parseLanguage;
function isTracedLanguage(language) {
return [
Language.cpp,
Language.csharp,
Language.go,
Language.java,
Language.swift,
].includes(language);
2020-08-10 11:54:02 +01:00
}
exports.isTracedLanguage = isTracedLanguage;
function isScannedLanguage(language) {
return !isTracedLanguage(language);
2020-08-10 11:54:02 +01:00
}
exports.isScannedLanguage = isScannedLanguage;
//# sourceMappingURL=languages.js.map