125 lines
3.5 KiB
JavaScript
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'
|
|
}
|