diff --git a/lib/languages.js b/lib/languages.js index 4924e79c8..2e839b098 100644 --- a/lib/languages.js +++ b/lib/languages.js @@ -1,22 +1,29 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // All the languages supported by CodeQL -exports.ALL_LANGUAGES = ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']; +var Language; +(function (Language) { + Language["csharp"] = "csharp"; + Language["cpp"] = "cpp"; + Language["go"] = "go"; + Language["java"] = "java"; + Language["javascript"] = "javascript"; + Language["python"] = "python"; +})(Language = exports.Language || (exports.Language = {})); // Additional names for languages const LANGUAGE_ALIASES = { - 'c': 'cpp', - 'c++': 'cpp', - 'c#': 'csharp', - 'typescript': 'javascript', + '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 function parseLanguage(language) { // Normalise to lower case language = language.toLowerCase(); // See if it's an exact match - const parsedLanguage = exports.ALL_LANGUAGES.find(l => l === language); - if (parsedLanguage !== undefined) { - return parsedLanguage; + if (language in Language) { + return language; } // Check language aliases if (language in LANGUAGE_ALIASES) { diff --git a/lib/languages.js.map b/lib/languages.js.map index 47aa0e1c9..8cb6df90a 100644 --- a/lib/languages.js.map +++ b/lib/languages.js.map @@ -1 +1 @@ -{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AAC3B,QAAA,aAAa,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC;AAG9F,iCAAiC;AACjC,MAAM,gBAAgB,GAA+B;IACnD,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,YAAY;CAC3B,CAAC;AAEF,gGAAgG;AAChG,SAAgB,aAAa,CAAC,QAAgB;IAC5C,0BAA0B;IAC1B,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElC,6BAA6B;IAC7B,MAAM,cAAc,GAAG,qBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC/D,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,cAAc,CAAC;KACvB;IAED,yBAAyB;IACzB,IAAI,QAAQ,IAAI,gBAAgB,EAAE;QAChC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACnC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAhBD,sCAgBC;AAGD,SAAgB,gBAAgB,CAAC,QAAkB;IACjD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAFD,4CAEC;AAED,SAAgB,iBAAiB,CAAC,QAAkB;IAClD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAFD,8CAEC"} \ No newline at end of file +{"version":3,"file":"languages.js","sourceRoot":"","sources":["../src/languages.ts"],"names":[],"mappings":";;AAAA,wCAAwC;AACxC,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,qBAAS,CAAA;IACT,yBAAa,CAAA;IACb,qCAAyB,CAAA;IACzB,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAED,iCAAiC;AACjC,MAAM,gBAAgB,GAA+B;IACnD,GAAG,EAAE,QAAQ,CAAC,GAAG;IACjB,KAAK,EAAE,QAAQ,CAAC,GAAG;IACnB,IAAI,EAAE,QAAQ,CAAC,MAAM;IACrB,YAAY,EAAE,QAAQ,CAAC,UAAU;CAClC,CAAC;AAEF,gGAAgG;AAChG,SAAgB,aAAa,CAAC,QAAgB;IAC5C,0BAA0B;IAC1B,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElC,6BAA6B;IAC7B,IAAI,QAAQ,IAAI,QAAQ,EAAE;QACxB,OAAO,QAAoB,CAAC;KAC7B;IAED,yBAAyB;IACzB,IAAI,QAAQ,IAAI,gBAAgB,EAAE;QAChC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;KACnC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAfD,sCAeC;AAGD,SAAgB,gBAAgB,CAAC,QAAkB;IACjD,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAFD,4CAEC;AAED,SAAgB,iBAAiB,CAAC,QAAkB;IAClD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC;AAFD,8CAEC"} \ No newline at end of file diff --git a/src/languages.ts b/src/languages.ts index 3a2ecdb16..40c1de7ab 100644 --- a/src/languages.ts +++ b/src/languages.ts @@ -1,13 +1,19 @@ // All the languages supported by CodeQL -export const ALL_LANGUAGES = ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] as const; -export type Language = (typeof ALL_LANGUAGES)[number]; +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': 'cpp', - 'c++': 'cpp', - 'c#': 'csharp', - 'typescript': 'javascript', + '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 @@ -16,9 +22,8 @@ export function parseLanguage(language: string): Language | undefined { language = language.toLowerCase(); // See if it's an exact match - const parsedLanguage = ALL_LANGUAGES.find(l => l === language); - if (parsedLanguage !== undefined) { - return parsedLanguage; + if (language in Language) { + return language as Language; } // Check language aliases