Files
2024-02-15 17:01:50 +00:00

49 lines
1.1 KiB
TypeScript

const FILE_EXTENSION_TO_PLATFORM = {
jsx: 'javascript-react',
tsx: 'javascript-react',
js: 'javascript',
ts: 'javascript',
php: 'php',
py: 'python',
vue: 'vue',
go: 'go',
java: 'java',
perl: 'perl',
rb: 'ruby',
rs: 'rust',
rlib: 'rust',
swift: 'swift',
m: 'apple',
mm: 'apple',
M: 'apple',
ex: 'elixir',
exs: 'elixir',
cs: 'csharp',
fs: 'fsharp',
vb: 'visualbasic',
kt: 'kotlin',
dart: 'dart',
sc: 'scala',
scala: 'scala',
clj: 'clojure',
};
/**
* Takes in path (/Users/test/sentry/something.jsx) and returns file extension (jsx)
*/
export function getFileExtension(fileName: string): string | undefined {
// this won't work for something like .spec.jsx
const segments = fileName.split('.');
if (segments.length > 1) {
return segments.pop();
}
return undefined;
}
/**
* Takes in file extension and returns a platform string that can be passed into platformicons
*/
export function fileExtensionToPlatform(fileExtension: string): string | undefined {
return FILE_EXTENSION_TO_PLATFORM[fileExtension];
}