Skip to content

Commit 3b76ec2

Browse files
committed
fix(ios): move mime types to constants and fix readdir error for unknown extensions
- Move mimeTypes dictionary to NitroFSMimeTypes struct in Utils.swift - Fix readdir to return 'application/octet-stream' for unknown extensions instead of throwing error - Add support for SQL database file extensions (.db, .sqlite, .sqlite3, .sql)
1 parent 8e0f5a5 commit 3b76ec2

2 files changed

Lines changed: 37 additions & 17 deletions

File tree

ios/NitroFSImpl.swift

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -159,23 +159,7 @@ class NitroFSImpl {
159159
return "application/octet-stream"
160160
}
161161

162-
let mimeTypes: [String: String] = [
163-
"jpg": "image/jpeg",
164-
"jpeg": "image/jpeg",
165-
"png": "image/png",
166-
"gif": "image/gif",
167-
"pdf": "application/pdf",
168-
"txt": "text/plain",
169-
"json": "application/json",
170-
"mp4": "video/mp4",
171-
"mp3": "audio/mpeg",
172-
"zip": "application/zip"
173-
]
174-
175-
guard let mimeType = mimeTypes[pathExtension] else {
176-
throw NitroFSError.encodingError(message: "Failed to get mime type")
177-
}
178-
return mimeType
162+
return NitroFSMimeTypes.mimeTypes[pathExtension] ?? "application/octet-stream"
179163
}
180164

181165
func rename(oldPath: String, newPath: String) throws {

ios/Utils.swift

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,42 @@ struct NitroFSDirs {
2020
}
2121
}
2222

23+
struct NitroFSMimeTypes {
24+
static let mimeTypes: [String: String] = [
25+
"jpg": "image/jpeg",
26+
"jpeg": "image/jpeg",
27+
"png": "image/png",
28+
"gif": "image/gif",
29+
"pdf": "application/pdf",
30+
"txt": "text/plain",
31+
"json": "application/json",
32+
"mp4": "video/mp4",
33+
"mp3": "audio/mpeg",
34+
"zip": "application/zip",
35+
"csv": "text/csv",
36+
"xls": "application/vnd.ms-excel",
37+
"xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
38+
"ppt": "application/vnd.ms-powerpoint",
39+
"pptx": "application/vnd.openxmlformats-officedocument.presentationml.sheet",
40+
"doc": "application/vnd.ms-word",
41+
"docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
42+
"odt": "application/vnd.oasis.opendocument.text",
43+
"ods": "application/vnd.oasis.opendocument.spreadsheet",
44+
"db": "application/vnd.sqlite3",
45+
"sqlite": "application/vnd.sqlite3",
46+
"sqlite3": "application/vnd.sqlite3",
47+
"sql": "application/sql",
48+
"xml": "application/xml",
49+
"yaml": "text/yaml",
50+
"yml": "text/yaml",
51+
"md": "text/markdown",
52+
"readme": "text/plain",
53+
"log": "text/plain",
54+
"html": "text/html",
55+
"htm": "text/html",
56+
]
57+
}
58+
2359
enum NitroFSError: Error {
2460
case unavailable(message: String)
2561
case fileError(message: String)

0 commit comments

Comments
 (0)