Miss any of our Open RFC calls?Watch the recordings here! »

@contentful/mimetype

1.4.4 • Public • Published

contentful-mimetype [CircleCI] codecov

Mimetype handling and identification

This is mostly used by the UI to figure out which icons to show for different filetypes.

It does a best effort guess to figure out which icon to show, which might not always come out very accurate.

It should be updated over time with relevant file types and mime types and it is by no means a definitive representation of all available file types.

Glossary

  • type - A media/MIME type http://en.wikipedia.org/wiki/Internet_media_type
  • group - A group of types that corresponds to a more global type of media (ex: plaintext, image, video, audio, etc)
  • group name - the display name for a given group
  • group label - the label used to identify a group in fileGroups.json and groupNames.json

API

Options object used by various methods

The methods that take this object as a parameter will always try to use the type if available. If the type is not available or is undefined, it will use the file extension as a fallback. You can also provide a fallback file name from which the extension will be extracted if not provided.

/**
 * @typedef {object} mimetypeParams
 * @prop {string} type Content MIME type
 * @prop {string} fallbackExt Fallback extension
 * @prop {string} fallbackFileName Fallback file name
*/

getGroupNames

  /**
   * Gets list of names for groups of mimetypes
   *
   * @returns {object} 
  */

getGroupName

  /**
   * Gets name of group file belongs to
   *
   * @param {mimetypeParams} mimetypeParams MIME type parameters
   * @returns {string} 
  */

getGroupLabels

  /**
   * Gets list of labels for groups
   *
   * @returns {array} 
  */

getGroupLabel

  /**
   * Gets label for group the file belongs to
   *
   * @param {mimetypeParams} mimetypeParams MIME type parameters
   * @returns {string} 
  */

getExtension

  /**
   * Gets extension for a given filename
   *
   * @param {string} fileName 
   * @returns {string} Extracted extension
   */

getTypesForGroup

  /**
   * Gets list of mimetypes for a group
   *
   * @param {string} groupLabel 
   * @returns {array} 
  */

hasPreview

  /**
   * Checks if file type is considered previewable
   *
   * @param {mimetypeParams} mimetypeParams MIME type parameters
   * @returns {boolean} 
  */

typeExists

  /**
   * Checks if type exists
   *
   * @param {mimetypeParams} mimetypeParams MIME type parameters
   * @returns {boolean} 
  */

getValidTypes

  /**
   * Gets list of types for all groups
   *
   * @returns {array} 
  */

License

This repository is published under the MIT license.

Install

npm i @contentful/mimetype

DownloadsWeekly Downloads

9,550

Version

1.4.4

License

MIT

Unpacked Size

46.7 kB

Total Files

14

Last publish

Collaborators

  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar