From fd37fd3a4556d8a8105eb01fb36d2a857cdd9351 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 25 Feb 2024 07:57:17 +0200 Subject: [PATCH] server-ts: Port services/import/mime --- src/services/import/{mime.js => mime.ts} | 21 +++++++++++++-------- src/services/import/single.js | 2 +- src/services/import/zip.js | 2 +- 3 files changed, 15 insertions(+), 10 deletions(-) rename src/services/import/{mime.js => mime.ts} (86%) diff --git a/src/services/import/mime.js b/src/services/import/mime.ts similarity index 86% rename from src/services/import/mime.js rename to src/services/import/mime.ts index 179bffebd..92a6e4ea7 100644 --- a/src/services/import/mime.js +++ b/src/services/import/mime.ts @@ -1,9 +1,9 @@ "use strict"; -const mimeTypes = require('mime-types'); -const path = require('path'); +import mimeTypes = require('mime-types'); +import path = require('path'); -const CODE_MIME_TYPES = { +const CODE_MIME_TYPES: Record = { 'text/plain': true, 'text/x-csrc': true, 'text/x-c++src': true, @@ -44,7 +44,7 @@ const CODE_MIME_TYPES = { }; // extensions missing in mime-db -const EXTENSION_TO_MIME = { +const EXTENSION_TO_MIME: Record = { ".c": "text/x-csrc", ".cs": "text/x-csharp", ".clj": "text/x-clojure", @@ -65,7 +65,7 @@ const EXTENSION_TO_MIME = { }; /** @returns false if MIME is not detected */ -function getMime(fileName) { +function getMime(fileName: string) { if (fileName.toLowerCase() === 'dockerfile') { return "text/x-dockerfile"; } @@ -79,7 +79,12 @@ function getMime(fileName) { return mimeTypes.lookup(fileName); } -function getType(options, mime) { +interface GetTypeOpts { + textImportedAsText: boolean; + codeImportedAsCode: boolean; +} + +function getType(options: GetTypeOpts, mime: string) { mime = mime ? mime.toLowerCase() : ''; if (options.textImportedAsText && (mime === 'text/html' || ['text/markdown', 'text/x-markdown'].includes(mime))) { @@ -96,7 +101,7 @@ function getType(options, mime) { } } -function normalizeMimeType(mime) { +function normalizeMimeType(mime: string) { mime = mime ? mime.toLowerCase() : ''; if (!(mime in CODE_MIME_TYPES) || CODE_MIME_TYPES[mime] === true) { @@ -107,7 +112,7 @@ function normalizeMimeType(mime) { } } -module.exports = { +export = { getMime, getType, normalizeMimeType diff --git a/src/services/import/single.js b/src/services/import/single.js index bebacee09..454406f93 100644 --- a/src/services/import/single.js +++ b/src/services/import/single.js @@ -4,7 +4,7 @@ const noteService = require('../../services/notes'); const imageService = require('../../services/image'); const protectedSessionService = require('../protected_session'); const markdownService = require('./markdown.js'); -const mimeService = require('./mime.js'); +const mimeService = require('./mime'); const utils = require('../../services/utils'); const importUtils = require('./utils'); const htmlSanitizer = require('../html_sanitizer'); diff --git a/src/services/import/zip.js b/src/services/import/zip.js index 01bc8b50c..041850ad8 100644 --- a/src/services/import/zip.js +++ b/src/services/import/zip.js @@ -8,7 +8,7 @@ const attributeService = require('../../services/attributes'); const BBranch = require('../../becca/entities/bbranch'); const path = require('path'); const protectedSessionService = require('../protected_session'); -const mimeService = require('./mime.js'); +const mimeService = require('./mime'); const treeService = require('../tree'); const yauzl = require("yauzl"); const htmlSanitizer = require('../html_sanitizer');