mirror of
https://github.com/github/codeql-action.git
synced 2026-10-30 01:27:22 +00:00
Refactoring: Rename KnownLanguage to BuiltInLanguage
This commit is contained in:
@@ -4,43 +4,43 @@ import { setupTests } from "../testing-utils";
|
||||
|
||||
import knownLanguagesData from "./builtin.json";
|
||||
|
||||
import { isKnownLanguage, KnownLanguage, parseBuiltInLanguage } from ".";
|
||||
import { isBuiltInLanguage, BuiltInLanguage, parseBuiltInLanguage } from ".";
|
||||
|
||||
setupTests(test);
|
||||
|
||||
test("parseBuiltInLanguage", (t) => {
|
||||
// Exact matches
|
||||
t.is(parseBuiltInLanguage("csharp"), KnownLanguage.csharp);
|
||||
t.is(parseBuiltInLanguage("cpp"), KnownLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("go"), KnownLanguage.go);
|
||||
t.is(parseBuiltInLanguage("java"), KnownLanguage.java);
|
||||
t.is(parseBuiltInLanguage("javascript"), KnownLanguage.javascript);
|
||||
t.is(parseBuiltInLanguage("python"), KnownLanguage.python);
|
||||
t.is(parseBuiltInLanguage("rust"), KnownLanguage.rust);
|
||||
t.is(parseBuiltInLanguage("csharp"), BuiltInLanguage.csharp);
|
||||
t.is(parseBuiltInLanguage("cpp"), BuiltInLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("go"), BuiltInLanguage.go);
|
||||
t.is(parseBuiltInLanguage("java"), BuiltInLanguage.java);
|
||||
t.is(parseBuiltInLanguage("javascript"), BuiltInLanguage.javascript);
|
||||
t.is(parseBuiltInLanguage("python"), BuiltInLanguage.python);
|
||||
t.is(parseBuiltInLanguage("rust"), BuiltInLanguage.rust);
|
||||
|
||||
// Aliases
|
||||
t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), KnownLanguage.csharp);
|
||||
t.is(parseBuiltInLanguage("c"), KnownLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("c++"), KnownLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("kotlin"), KnownLanguage.java);
|
||||
t.is(parseBuiltInLanguage("typescript"), KnownLanguage.javascript);
|
||||
t.is(parseBuiltInLanguage(" \t\nCsHaRp\t\t"), BuiltInLanguage.csharp);
|
||||
t.is(parseBuiltInLanguage("c"), BuiltInLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("c++"), BuiltInLanguage.cpp);
|
||||
t.is(parseBuiltInLanguage("kotlin"), BuiltInLanguage.java);
|
||||
t.is(parseBuiltInLanguage("typescript"), BuiltInLanguage.javascript);
|
||||
|
||||
// spaces and case-insensitivity
|
||||
t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), KnownLanguage.java);
|
||||
t.is(parseBuiltInLanguage(" \t\nkOtLin\t\t"), BuiltInLanguage.java);
|
||||
|
||||
// Not matches
|
||||
t.is(parseBuiltInLanguage(KnownLanguage.python), KnownLanguage.python);
|
||||
t.is(parseBuiltInLanguage(BuiltInLanguage.python), BuiltInLanguage.python);
|
||||
t.is(parseBuiltInLanguage("foo"), undefined);
|
||||
t.is(parseBuiltInLanguage(" "), undefined);
|
||||
t.is(parseBuiltInLanguage(""), undefined);
|
||||
});
|
||||
|
||||
test("isKnownLanguage matches the curated known-language set", (t) => {
|
||||
t.true(isKnownLanguage(KnownLanguage.actions));
|
||||
t.true(isKnownLanguage(KnownLanguage.swift));
|
||||
t.false(isKnownLanguage("typescript"));
|
||||
test("isBuiltInLanguage matches the curated built-in language set", (t) => {
|
||||
t.true(isBuiltInLanguage(BuiltInLanguage.actions));
|
||||
t.true(isBuiltInLanguage(BuiltInLanguage.swift));
|
||||
t.false(isBuiltInLanguage("typescript"));
|
||||
});
|
||||
|
||||
test("KnownLanguage enum matches builtin.json", (t) => {
|
||||
t.deepEqual(Object.values(KnownLanguage), knownLanguagesData.languages);
|
||||
test("BuiltInLanguage enum matches builtin.json", (t) => {
|
||||
t.deepEqual(Object.values(BuiltInLanguage), knownLanguagesData.languages);
|
||||
});
|
||||
|
||||
@@ -3,13 +3,8 @@ import knownLanguagesData from "./builtin.json";
|
||||
/** A language to analyze with CodeQL. */
|
||||
export type Language = string;
|
||||
|
||||
/**
|
||||
* A language supported by CodeQL that is treated specially by the Action.
|
||||
*
|
||||
* This is not an exhaustive list of languages supported by CodeQL and new
|
||||
* languages do not need to be added here.
|
||||
*/
|
||||
export enum KnownLanguage {
|
||||
/** A language built into the `defaults.json` CodeQL distribution. */
|
||||
export enum BuiltInLanguage {
|
||||
actions = "actions",
|
||||
cpp = "cpp",
|
||||
csharp = "csharp",
|
||||
@@ -30,10 +25,12 @@ export enum JavaEnvVars {
|
||||
_JAVA_OPTIONS = "_JAVA_OPTIONS",
|
||||
}
|
||||
|
||||
const knownLanguageSet = new Set<string>(knownLanguagesData.languages);
|
||||
const builtInLanguageSet = new Set<string>(knownLanguagesData.languages);
|
||||
|
||||
export function isKnownLanguage(language: string): language is KnownLanguage {
|
||||
return knownLanguageSet.has(language);
|
||||
export function isBuiltInLanguage(
|
||||
language: string,
|
||||
): language is BuiltInLanguage {
|
||||
return builtInLanguageSet.has(language);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -41,13 +38,13 @@ export function isKnownLanguage(language: string): language is KnownLanguage {
|
||||
*/
|
||||
export function parseBuiltInLanguage(
|
||||
language: string,
|
||||
): KnownLanguage | undefined {
|
||||
): BuiltInLanguage | undefined {
|
||||
language = language.trim().toLowerCase();
|
||||
language =
|
||||
knownLanguagesData.aliases[
|
||||
language as keyof typeof knownLanguagesData.aliases
|
||||
] ?? language;
|
||||
if (isKnownLanguage(language)) {
|
||||
if (isBuiltInLanguage(language)) {
|
||||
return language;
|
||||
}
|
||||
return undefined;
|
||||
|
||||
Reference in New Issue
Block a user