jmalcloud-view/src/utils/file-type.js
2024-08-02 22:49:43 +08:00

125 lines
3.5 KiB
JavaScript

import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
export const suffix = {
simText: [
'vue','asp','jsp','TXT',
'xml','xsl','iml','m','bas','prg','cmd',
'sass','sas','php','lst','key','pem','log',
'cmake','db','gradle','bat','conf','dart','plist'
],
compressedFile: [
'zip','tar','7z', 'rar', 'jar','tar.gz','tgz','tar.bz2'
],
iframePreviewFile: ['pdf', 'csv', 'drawio', 'mind', 'glb', 'gltf', 'dwg']
}
monaco.languages.getLanguages().forEach(language => {
language.extensions.forEach(ext => {
suffix.simText.push(ext.substring(1,ext.length))
})
})
// 换行
export const lineWrapping = [
'txt'
]
export const iconClass = new Map()
iconClass.set('php','file-php')
iconClass.set('c','file-c')
iconClass.set('js','file-js')
iconClass.set('vue','file-vue')
iconClass.set('xml','file-xml')
iconClass.set('dart','file-dart')
iconClass.set('html','file-html')
iconClass.set('md','file-md')
iconClass.set('txt','file-txt')
iconClass.set('TXT','file-txt')
iconClass.set('css','file-css')
iconClass.set('scss','file-css')
iconClass.set('java','file-java')
iconClass.set('go','file-go')
iconClass.set('DS_Store','file-Ds-store')
iconClass.set('jar','file-jar')
iconClass.set('properties','file-properties')
iconClass.set('conf','file-conf')
iconClass.set('factories','file-factories')
iconClass.set('class','file-class')
iconClass.set('excel','file-excel')
iconClass.set('xls','file-excel')
iconClass.set('xlsx','file-excel')
iconClass.set('gitignore','file-gitignore')
iconClass.set('ncm','file-ncm')
iconClass.set('dmg','file-dmg')
iconClass.set('pkg','file-pkg')
iconClass.set('mpkg','file-pkg')
iconClass.set('exe','file-exe')
iconClass.set('word','file-word')
iconClass.set('doc','file-word')
iconClass.set('docx','file-word')
iconClass.set('docxf','file-docxf')
iconClass.set('ppt','file-ppt')
iconClass.set('pptx','file-ppt')
iconClass.set('drawio','file-drawio')
iconClass.set('csv','file-csv')
iconClass.set('pdf','file-pdf')
iconClass.set('mind','file-mind')
iconClass.set('zip','zip')
iconClass.set('rar','zip')
iconClass.set('7z','zip')
iconClass.set('iml','file-idea')
iconClass.set('key','file-key')
iconClass.set('pem','file-pem')
iconClass.set('gz','file-gzip')
iconClass.set('tar.gz','file-gzip')
iconClass.set('json','file-json')
iconClass.set('tar','file-tar')
iconClass.set('sh','file-shell')
iconClass.set('log','file-log')
iconClass.set('py','file-python')
iconClass.set('cpp','file-cpp')
iconClass.set('h','file-h')
iconClass.set('xsl','file-xsl')
iconClass.set('cmake','file-cmake')
iconClass.set('db','file-db')
iconClass.set('sql','file-db')
iconClass.set('gradle','file-gradle')
iconClass.set('bat','file-bat')
iconClass.set('swift','file-swift')
iconClass.set('yml','file-yml')
iconClass.set('yaml','file-yml')
iconClass.set('plist','file-plist')
iconClass.set('iso','file-iso')
iconClass.set('glb','file-glb')
iconClass.set('gltf','file-glb')
iconClass.set('epub','file-epub')
iconClass.set('dwg','file-dwg')
export function findIconClass(file){
if(!file){
return
}
if(file.isFolder){
return 'folder'
}
if (file.contentType) {
if(file.contentType.indexOf('video') > -1){
return 'video'
}
if(file.contentType.startsWith('image')){
return 'image'
}
if(file.contentType.indexOf('audio') > -1){
return 'audio'
}
}
let suffix = file.suffix;
if(!suffix && file.name){
suffix = file.name.substring(file.name.lastIndexOf('.') + 1)
}
if(iconClass.has(suffix)){
return iconClass.get(suffix)
}
return 'file'
}