generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 81
Expand file tree
/
Copy pathlanguage.ts
More file actions
48 lines (44 loc) · 1.59 KB
/
language.ts
File metadata and controls
48 lines (44 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
export interface LanguageInfo {
name: string;
alias: string;
extensions: string[];
}
export const SUPPORTED_LANGUAGES: LanguageInfo[] = [
{ name: 'csharp', alias: 'cs', extensions: ['.cs'] },
{ name: 'fsharp', alias: 'fs', extensions: ['.fs'] },
{ name: 'go', alias: 'go', extensions: ['.go'] },
{ name: 'java', alias: 'java', extensions: ['.java'] },
{ name: 'javascript', alias: 'js', extensions: ['.js'] },
{ name: 'python', alias: 'py', extensions: ['.py'] },
{ name: 'typescript', alias: 'ts', extensions: ['.ts', '.js'] },
];
/**
* get the language alias from the language name or alias
*
* @example
* getLanguageAlias('typescript') // returns 'ts'
* getLanguageAlias('python') // returns 'py'
*/
export function getLanguageAlias(language: string): string | undefined {
return SUPPORTED_LANGUAGES.find((l) => l.name === language || l.alias === language)?.alias;
}
/**
* get the language name from the language alias or name
*
* @example
* getLanguageFromAlias('ts') // returns 'typescript'
* getLanguageFromAlias('py') // returns 'python'
*/
export function getLanguageFromAlias(alias: string): string | undefined {
return SUPPORTED_LANGUAGES.find((l) => l.alias === alias || l.name === alias)?.name;
}
/**
* get the file extensions for a given language name or alias
*
* @example
* getLanguageExtensions('typescript') // returns ['.ts', '.js']
* getLanguageExtensions('python') // returns ['.py']
*/
export function getLanguageExtensions(language: string): string[] {
return SUPPORTED_LANGUAGES.find((l) => l.name === language || l.alias === language)?.extensions ?? [];
}