Contents

jaywcjlove/filetype

FileType

Installation

Swift Package Manager

Add CodeMirror to your project using Xcode:

  1. In Xcode, go to FileAdd Package Dependencies...
  2. Enter the repository URL: https://github.com/jaywcjlove/FileType.git
  3. Click Add Package

Or add it to your Package.swift file:

dependencies: [
    .package(url: "https://github.com/jaywcjlove/FileType.git", from: "1.0.0")
]

Usage

Inspect mime type

import FileType

let path = "/path/to/some-file.jpg"
let url = URL(fileURLWithPath: path, isDirectory: false)
let data = try! Data(contentsOf: url)
let mimeType = FileType.mimeType(data: data)

mimeType?.type == .jpg // true
mimeType! // MimeType(mime: "image/jpeg", ext: "jpg", type: .jpg)

Get the file extension from a MIME type

let avroMimeType = MimeType.mimeTypesAll.first { $0.mime == "application/avro" }
if let avroMimeType = avroMimeType {
    avroMimeType.mime   // "application/avro"
    avroMimeType.type   // .avro
    avroMimeType.type.rawValue // "avro"
}
let mimeTypes = MimeType.mimeTypes.first(where: { $0.key == "application/mp4" })
if let mimeTypes = mimeTypes {
    mimeTypes.compressible
    mimeTypes.extensions // ["mp4","mpg4","mp4s","m4p"]
}

Acknowledgments

Thanks to these projects:

  • https://github.com/sendyhalim/Swime
  • https://github.com/sindresorhus/file-type
  • https://github.com/jshttp/mime-db

License

Licensed under the MIT License.

Package Metadata

Repository: jaywcjlove/filetype

Default branch: main

README: README.md