Nutritious Pumpkin Meal

    human-filetypes
    TypeScript icon, indicating that this package has built-in type declarations

    0.2.1 • Public • Published

    human-filetypes

    CI npm version bundle size Total alerts Language grade: JavaScript License Buy me a coffee

    Human-friendly taxonomy for file types. Zero dependencies.

    List of mime types sourced from MDN.

    Usage

    npm i human-filetypes
    

    The module exports two functions fromMime() and fromExtension().

    const { fromMime, fromExtension } = require('human-filetypes')

    fromMime

    fromMime() converts a MIME type identifier to a human-redable file kind.

    const assert = require('assert')
    
    assert.equal(fromMime('image/png'), 'image')
    assert.equal(fromMime('image/webp'), 'image')
    assert.equal(fromMime('application/pdf'), 'document')
    assert.equal(fromMime('application/msword'), 'document')
    assert.equal(fromMime('image/jpeg'), 'image')
    assert.equal(fromMime('video/mpeg'), 'video')
    assert.equal(fromMime('video/webm'), 'video')
    assert.equal(fromMime('text/javascript'), 'text')
    assert.equal(fromMime('application/json'), 'text')
    assert.equal(fromMime('text/csv'), 'spreadsheet')
    assert.equal(fromMime('application/zip'), 'archive')

    fromExtension

    fromExtension() converts a file extension or a filename to a human-redable file kind.

    assert.equal(fromExtension('.png'), 'image')
    assert.equal(fromExtension('.webp'), 'image')
    assert.equal(fromExtension('.gif'), 'image')
    assert.equal(fromExtension('.pdf'), 'document')
    assert.equal(fromExtension('.docx'), 'document')
    assert.equal(fromExtension('.mp4'), 'video')
    assert.equal(fromExtension('.webm'), 'video')
    assert.equal(fromExtension('.json'), 'text')
    assert.equal(fromExtension('.exe'), 'application')
    assert.equal(fromExtension('.zip'), 'archive')

    Human-readable file kinds

    The following taxonomy is used:

    File Kind Description Examples
    image Image file .png, .gif, .webp
    video Video file .mp4, .webm
    audio Audio file .mp3, .wav
    archive Archive file .zip, .tar, .tar.gz
    document Text Document .pdf, .docx, .odt
    spreadsheet Spreadsheet .xlsx, .csv, .tsv
    presentation Presentation .ppt, .pptx, .odp
    font Font package .ttf, .otf, .woff2
    text Plain text file .txt, .html, .json
    application Executable/application package .exe, .jar, .swf
    unknown Unknown -

    File kinds are also available to import as an enum:

    import { FileKind } from 'human-filetypes'
    
    assert.equal(fromExtension('.zip'), FileKind.Archive)

    Contributing

    human-filetypes is Free and Open Source Software. Issues and pull requests are more than welcome!

    Install

    npm i human-filetypes

    DownloadsWeekly Downloads

    1

    Version

    0.2.1

    License

    MIT

    Unpacked Size

    29.6 kB

    Total Files

    15

    Last publish

    Collaborators

    • anttiviljami