@wener/console
Version:
Base console UI toolkit
30 lines (25 loc) • 754 B
text/typescript
import { FileExtIcon } from './FileExtIcon';
import { FileTypeIcon } from './FileTypeIcon';
export function getFileIcon(needle: { kind?: string; name?: string } | string | undefined | null) {
if (!needle) return FileTypeIcon.file;
let fn: string | undefined;
if (typeof needle === 'object' && needle) {
if (needle.kind === 'directory') {
return FileTypeIcon.directory;
}
fn = needle.name;
} else if (typeof needle === 'string') {
fn = needle;
}
if (fn) {
let ext: string | undefined;
if (fn.includes('.')) {
ext = extname(fn).slice(1);
}
return FileExtIcon[ext || fn] || FileTypeIcon.file;
}
return FileTypeIcon.file;
}
function extname(fn: string) {
return fn.includes('.') ? fn.slice(fn.lastIndexOf('.') + 1) : '';
}