mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	refactor(import/mime): split CODE_MIME_TYPES Record into two separate objects
CODE_MIME_TYPES -> as a Set -> as we only care about the existance of those types CODE_MIME_TYPES_OVERRIDE -> as a Map with those keys and the "overwrite" values as associated value -> this way we don't have to unnecessarily store additional boolean values for everything *but* those hand ful of mime types -> also I've sorted the items alphabetically, while I was at it
This commit is contained in:
		| @@ -4,45 +4,48 @@ import mimeTypes from "mime-types"; | |||||||
| import path from "path"; | import path from "path"; | ||||||
| import type { TaskData } from "../task_context_interface.js"; | import type { TaskData } from "../task_context_interface.js"; | ||||||
|  |  | ||||||
| const CODE_MIME_TYPES: Record<string, boolean | string> = { | const CODE_MIME_TYPES = new Set([ | ||||||
|     "text/plain": true, |     "application/json", | ||||||
|     "text/x-csrc": true, |     "message/http", | ||||||
|     "text/x-c++src": true, |     "text/css", | ||||||
|     "text/x-csharp": true, |     "text/html", | ||||||
|     "text/x-clojure": true, |     "text/plain", | ||||||
|     "text/css": true, |     "text/x-clojure", | ||||||
|     "text/x-dockerfile": true, |     "text/x-csharp", | ||||||
|     "text/x-erlang": true, |     "text/x-c++src", | ||||||
|     "text/x-feature": true, |     "text/x-csrc", | ||||||
|     "text/x-go": true, |     "text/x-dockerfile", | ||||||
|     "text/x-groovy": true, |     "text/x-erlang", | ||||||
|     "text/x-haskell": true, |     "text/x-feature", | ||||||
|     "text/html": true, |     "text/x-go", | ||||||
|     "message/http": true, |     "text/x-groovy", | ||||||
|     "text/x-java": true, |     "text/x-haskell", | ||||||
|     "application/javascript": "application/javascript;env=frontend", |     "text/x-java", | ||||||
|     "application/x-javascript": "application/javascript;env=frontend", |     "text/x-kotlin", | ||||||
|     "application/json": true, |     "text/x-lua", | ||||||
|     "text/x-kotlin": true, |     "text/x-markdown", | ||||||
|     "text/x-stex": true, |     "text/xml", | ||||||
|     "text/x-lua": true, |     "text/x-objectivec", | ||||||
|  |     "text/x-pascal", | ||||||
|  |     "text/x-perl", | ||||||
|  |     "text/x-php", | ||||||
|  |     "text/x-python", | ||||||
|  |     "text/x-ruby", | ||||||
|  |     "text/x-rustsrc", | ||||||
|  |     "text/x-scala", | ||||||
|  |     "text/x-sh", | ||||||
|  |     "text/x-sql", | ||||||
|  |     "text/x-stex", | ||||||
|  |     "text/x-swift", | ||||||
|  |     "text/x-yaml" | ||||||
|  | ]); | ||||||
|  |  | ||||||
|  | const CODE_MIME_TYPES_OVERRIDE = new Map([ | ||||||
|  |     ["application/javascript", "application/javascript;env=frontend"], | ||||||
|  |     ["application/x-javascript", "application/javascript;env=frontend"], | ||||||
|     // possibly later migrate to text/markdown as primary MIME |     // possibly later migrate to text/markdown as primary MIME | ||||||
|     "text/markdown": "text/x-markdown", |     ["text/markdown", "text/x-markdown"] | ||||||
|     "text/x-markdown": true, | ]); | ||||||
|     "text/x-objectivec": true, |  | ||||||
|     "text/x-pascal": true, |  | ||||||
|     "text/x-perl": true, |  | ||||||
|     "text/x-php": true, |  | ||||||
|     "text/x-python": true, |  | ||||||
|     "text/x-ruby": true, |  | ||||||
|     "text/x-rustsrc": true, |  | ||||||
|     "text/x-scala": true, |  | ||||||
|     "text/x-sh": true, |  | ||||||
|     "text/x-sql": true, |  | ||||||
|     "text/x-swift": true, |  | ||||||
|     "text/xml": true, |  | ||||||
|     "text/x-yaml": true |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| // extensions missing in mime-db | // extensions missing in mime-db | ||||||
| const EXTENSION_TO_MIME: Record<string, string> = { | const EXTENSION_TO_MIME: Record<string, string> = { | ||||||
| @@ -85,7 +88,7 @@ function getType(options: TaskData, mime: string) { | |||||||
|  |  | ||||||
|     if (options.textImportedAsText && (mime === "text/html" || ["text/markdown", "text/x-markdown"].includes(mime))) { |     if (options.textImportedAsText && (mime === "text/html" || ["text/markdown", "text/x-markdown"].includes(mime))) { | ||||||
|         return "text"; |         return "text"; | ||||||
|     } else if (options.codeImportedAsCode && mime in CODE_MIME_TYPES) { |     } else if (options.codeImportedAsCode && CODE_MIME_TYPES.has(mime)) { | ||||||
|         return "code"; |         return "code"; | ||||||
|     } else if (mime.startsWith("image/")) { |     } else if (mime.startsWith("image/")) { | ||||||
|         return "image"; |         return "image"; | ||||||
| @@ -96,12 +99,11 @@ function getType(options: TaskData, mime: string) { | |||||||
|  |  | ||||||
| function normalizeMimeType(mime: string) { | function normalizeMimeType(mime: string) { | ||||||
|     mime = mime ? mime.toLowerCase() : ""; |     mime = mime ? mime.toLowerCase() : ""; | ||||||
|     const mappedMime = CODE_MIME_TYPES[mime]; |  | ||||||
|  |  | ||||||
|     if (mappedMime === true) { |     if (CODE_MIME_TYPES.has(mime)) { | ||||||
|         return mime; |         return mime; | ||||||
|     } else if (typeof mappedMime === "string") { |     } else if (CODE_MIME_TYPES_OVERRIDE.get(mime)) { | ||||||
|         return mappedMime; |         return CODE_MIME_TYPES_OVERRIDE.get(mime); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     return undefined; |     return undefined; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user