cli-block
Version:
Create nice looking CLI Blocks
66 lines (49 loc) โข 2.82 kB
text/typescript
export const getFileIcon = (name: string) => {
const extension = name.split('.').pop()?.toLowerCase();
if (!extension) return '๐'; // Default file icon
const icons: Record<string, string> = {
// ๐ฅ๏ธ Programming & Scripting Languages
js: '๐', ts: '๐', py: '๐', rb: '๐', php: '๐', java: 'โ',
c: '๐ต', h: '๐ต', cpp: '๐ต', hpp: '๐ต', cs: 'โ๏ธ', swift: '๐',
go: '๐น', rs: '๐ฆ', pl: '๐ช', pm: '๐ช', sh: '๐', bash: '๐',
zsh: '๐', fish: '๐', ps1: '๐ง', psm1: '๐ง', psc1: '๐ง', bat: '๐ฅ๏ธ',
lua: '๐', dart: '๐ฏ', kotlin: '๐ท', scala: '๐ฆ', groovy: '๐ญ',
asm: '๐พ', r: '๐', f90: '๐', pas: '๐', lisp: '๐ง ', clj: '๐ฟ',
vue: '๐ข', svelte: '๐ฅ', jsx: 'โ๏ธ', tsx: 'โ๏ธ', elm: '๐ณ',
// ๐ Web, Markup & Styling
html: '๐', htm: '๐', css: '๐จ', scss: '๐จ', sass: '๐จ', less: '๐จ',
xml: '๐', xslt: '๐', xsl: '๐',
// ๐ ๏ธ Config & Data Files
json: '๐', yaml: '๐', yml: '๐', ini: 'โ๏ธ', conf: '๐ง',
toml: '๐ ๏ธ', env: 'โก', log: '๐', cfg: 'โ๏ธ', properties: '๐',
// ๐ Documents
md: '๐', txt: '๐', doc: '๐', docx: '๐', odt: '๐', pdf: '๐',
rst: '๐', tex: '๐', latex: '๐', csv: '๐',
// ๐ Spreadsheets & Presentations
xls: '๐', xlsx: '๐', ods: '๐', ppt: '๐ฝ๏ธ', pptx: '๐ฝ๏ธ', odp: '๐ฝ๏ธ',
// ๐ฌ Media Files
png: '๐ผ', jpg: '๐ผ', jpeg: '๐ผ', gif: '๐ผ', svg: '๐ผ', webp: '๐ผ',
mp4: '๐ฅ', avi: '๐ฅ', webm: '๐ฅ', mov: '๐ฅ', mkv: '๐๏ธ',
mp3: '๐ต', wav: '๐ต', ogg: '๐ต', flac: '๐ถ', aac: '๐ถ', opus: '๐ถ',
// ๐ฆ Archives & Compressed Files
zip: '๐ฆ', rar: '๐ฆ', tar: '๐ฆ', gz: '๐ฆ', '7z': '๐ฆ', bz2: '๐ฆ', xz: '๐ฆ',
iso: '๐ฟ', dmg: '๐',
// โ๏ธ Executables & OS Packages
exe: 'โ๏ธ', msi: 'โ๏ธ', apk: '๐ค', deb: '๐ง', rpm: '๐ฆ', pkg: '๐ฆ',
jar: 'โ', war: 'โ',
// ๐จ Design & 3D Modeling
psd: '๐จ', ai: '๐จ', xd: '๐๏ธ', sketch: '๐๏ธ', fig: '๐ญ',
blend: '๐ฅ', fbx: '๐ญ', obj: '๐๏ธ', stl: '๐จ๏ธ', gltf: '๐',
// ๐๏ธ CAD & Engineering
dwg: '๐๏ธ', dxf: '๐๏ธ', step: 'โ๏ธ', igs: '๐',
// ๐ฅ๏ธ System Files
dll: 'โ๏ธ', sys: '๐ฅ๏ธ', bin: '๐พ', dat: '๐',
// ๐ Cloud & Server
sql: '๐๏ธ', db: '๐พ', sqlite: '๐พ', mongodb: '๐๏ธ', redis: '๐๏ธ',
// ๐งช Scientific & Misc
mat: '๐', hdf5: '๐', pkl: '๐ฌ', rdata: '๐',
// ๐ Blockchain & Cryptography
key: '๐', pem: '๐', crt: '๐', p12: '๐', wallet: '๐ฐ',
};
return icons[extension] || '๐'; // Default icon if not found
};