How to use mime-types - 10 common examples

To help you get started, we’ve selected a few mime-types examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github ambientsprotocol / ambc / src / cli.js View on Github external
// --ipfs-api option
      const IPFS = require('ipfs-http-client')
      const addr = multiaddr(argv['ipfs-api'])
      const nodeAddress = addr.nodeAddress()
      ipfs = new IPFS(nodeAddress.address, nodeAddress.port)
    } else {
      const IPFS = require('ipfs')
      ipfs = await IPFS.create({ start: false })
    }
  } catch (e) {
    console.error(e)
    throw new Error('Please use npm to install either `ipfs` or `ipfs-http-client`.')
  }

  // Register new MIME type for .ambient files
  mime.extensions['text/ambients'] = ['ambient']
  mime.types.ambient = 'text/ambients'

  const file = fs.readFileSync(argv.input).toString().trim()

  let result
  switch (mime.lookup(argv.input)) {
    case 'application/javascript':
      result = await output(ipfs, file, argv); break
    case 'text/ambients':
      result = await output(ipfs, file, argv); break
    default:
      throw new Error('File type not recognized')
  }

  process.stdout.write(result + '\n')
  process.exit(0)
github ambientsprotocol / ambc / src / cli.js View on Github external
const IPFS = require('ipfs-http-client')
      const addr = multiaddr(argv['ipfs-api'])
      const nodeAddress = addr.nodeAddress()
      ipfs = new IPFS(nodeAddress.address, nodeAddress.port)
    } else {
      const IPFS = require('ipfs')
      ipfs = await IPFS.create({ start: false })
    }
  } catch (e) {
    console.error(e)
    throw new Error('Please use npm to install either `ipfs` or `ipfs-http-client`.')
  }

  // Register new MIME type for .ambient files
  mime.extensions['text/ambients'] = ['ambient']
  mime.types.ambient = 'text/ambients'

  const file = fs.readFileSync(argv.input).toString().trim()

  let result
  switch (mime.lookup(argv.input)) {
    case 'application/javascript':
      result = await output(ipfs, file, argv); break
    case 'text/ambients':
      result = await output(ipfs, file, argv); break
    default:
      throw new Error('File type not recognized')
  }

  process.stdout.write(result + '\n')
  process.exit(0)
})(argv)
github AnyChart / AnyChart-NodeJS / lib / anychart-node.js View on Github external
for (var i = 0, len = resources.length; i < len; i++) {
    var resource = resources[i];
    var type = resource.type;

    if (type == mime.contentType('css')) {
      var style = document.createElement('style');
      style.innerHTML = resource.body;
      head.appendChild(style);

      //todo font loading
      // var font = new FontFaceObserver('Conv_interdex');
      // font.load().then(function () {
      //
      // });
    } else if (type == mime.contentType('js')) {
      scripts += ' ' + resource.body + ';';
    }
  }

  var err = null;
  try {
    var script = new vm.VM({
      timeout: 5000,
      sandbox: window
    });
    script.run(scripts);
  } catch (e) {
    console.log(e);
    err = e;
  }
github OpenSprites / OpenSprites-next / server / main.js View on Github external
app.get(`/resources/:id/download/:f?`, async function(req, res) {
  let resource
  try {
    resource = await db.Resource.findById(req.params.id)
  } catch(err){
    console.log(err)
    res.status(404).render('404', {
      user: req.session.user,
      csrfToken: req.csrfToken()
    })
    return
  }

  if(!req.params.f) {
    let title = resource.name.replace(/\ /g, '-')
    let type = require('mime-types').extension(resource.type) || 'mp3'
    let f = `${sanitize(title)}.${type}`

    res.redirect(`/resources/${req.params.id}/download/${f}`)
  } else {
    try {
      await resource.incrementDownloads(req.ip)
      for(let owner of resource.owners) {
        let u = await User.findByUsername(owner)
        if(owner != req.session.user)
          u.sendMessage('download', 'resource', 'Resource', resource._id, 1)
      }
    } catch(err){
      console.log(err)
      // continue to download anyway
    }
    if(resource.script) {
github diplomatiegouvfr / hornet-js / hornet-js-components / src / upload-file / upload-file-field.jsx View on Github external
UploadFileField.prototype.toJavaScript = function (uploadedFile) {
    if (uploadedFile) {
        if (this.widget && this.widget.attrs.maxSize && uploadedFile.size > this.widget.attrs.maxSize) {
            var maxSizeInMB = utils._.round(this.widget.attrs.maxSize / (1024 * 1024), 2);
            throw newforms.ValidationError(this.errorMessages.maxSize, {code:"maxLength", params: {maxSizeInMB: maxSizeInMB}});
        }
        if (this.widget && this.widget.attrs.accept) {

            var extension = "";
            /* recuperation de l'extension du fichier */
            /* par défaut, on recupere celle qui est associée au mime type : */
            if (uploadedFile.type) {
                extension = mime.extension(uploadedFile.type);
            }
            /* par contre, si l'extension est présente dans le nom du fichier */
            /* on la prend en priorité : */
            if (uploadedFile.name && uploadedFile.name.indexOf(".") != -1) {
                extension = utils._.last(uploadedFile.name.split("."));
            }

            /* comparaison de l'extension du fichier avec la liste des extensions autorisées (accept) */
            /* _.some renvoie true si au moins une des extensions autorisées correspond */
            var allowedType = utils._.some(this.widget.attrs.accept, function (accept) {
                return accept === "." + extension
            });
            if (!allowedType) {
                throw newforms.ValidationError(this.errorMessages.invalid, {code: "invalid", params: {fileTypeList:this.widget.attrs.accept}});
            }
        }
github microsoft / botbuilder-tools / packages / Chatdown / lib / index.js View on Github external
if (contentType) {
        contentType = contentType.toLowerCase();
        if (cardContentTypes[contentType])
            contentType = cardContentTypes[contentType];
    }
    else {
        contentType = mime.lookup(contentUrl) || cardContentTypes[path.extname(contentUrl)];

        if (!contentType && contentUrl && contentUrl.indexOf('http') == 0) {
            let options = { method: 'HEAD', uri: contentUrl };
            let response = await request(options);
            contentType = response['content-type'].split(';')[0];
        }
    }

    const charset = mime.charset(contentType);

    // if not a url
    if (contentUrl.indexOf('http') != 0) {
        // read the file
        let content = await readAttachmentFile(contentUrl, contentType);
        // if it is not a card
        if (!isCard(contentType) && charset !== 'UTF-8') {
            // send as base64
            contentUrl = `data:${contentType};base64,${new Buffer(content).toString('base64')}`;
            content = undefined;
        } else {
            contentUrl = undefined;
        }
        return (activity.attachments || (activity.attachments = [])).push(new Attachment({ contentType, contentUrl, content }));
    }
    // send as contentUrl
github aneilbaboo / replayer / src / cache.js View on Github external
if (resHeaders.error) {
          req.emit('error', resHeaders.error);
          return;
        }

        var res = new http.IncomingMessage(socket);
        res.headers = resHeaders.headers || {};
        res.statusCode = resHeaders.statusCode;

        if (callback) {
          callback(res);
        }

        if (!forceLive) {
          var isBinary = !mimeTypes.charset(resHeaders['content-encoding']);
          resBody = isBinary ? 
            fs.readFileSync(filename) : 
            replayerUtil.substituteWithRealValues(fs.readFileSync(filename).toString());
        }

        req.emit('response', res);

        if (res.push) {
          // node 0.10.x
          res.push(resBody);
          res.push(null);
        } else {
          // node 0.8.x
          res.emit('data', resBody);
          res.emit('end');
        }
github kanongil / node-hls-segment-reader / lib / segment-reader.js View on Github external
const M3U8Parse = require('m3u8parse');
const Oncemore = require('oncemore');
const UriStream = require('uristream');
const Readable = require('readable-stream');

const SegmentFetcher = require('./segment-fetcher');
const HlsSegmentObject = require('./segment-object');

try {
    const MimeTypes = require('mime-types');

    /* eslint-disable dot-notation */
    MimeTypes.types['ac3'] = 'audio/ac3';
    MimeTypes.types['eac3'] = 'audio/eac3';
    MimeTypes.types['m4s'] = 'video/iso.segment';
    /* eslint-enable dot-notation */
}
catch (err) {
    console.error('Failed to inject extra types', err);
}

const internals = {
    indexMimeTypes: new Set([
        'application/vnd.apple.mpegurl',
        'application/x-mpegurl',
        'audio/mpegurl'
    ]),
    segmentMimeTypes: new Set([
        'video/mp2t',
        'video/mpeg',
        'video/mp4',
github kanongil / node-hls-segment-reader / lib / segment-reader.js View on Github external
const Url = require('url');

const M3U8Parse = require('m3u8parse');
const Oncemore = require('oncemore');
const UriStream = require('uristream');
const Readable = require('readable-stream');

const SegmentFetcher = require('./segment-fetcher');
const HlsSegmentObject = require('./segment-object');

try {
    const MimeTypes = require('mime-types');

    /* eslint-disable dot-notation */
    MimeTypes.types['ac3'] = 'audio/ac3';
    MimeTypes.types['eac3'] = 'audio/eac3';
    MimeTypes.types['m4s'] = 'video/iso.segment';
    /* eslint-enable dot-notation */
}
catch (err) {
    console.error('Failed to inject extra types', err);
}

const internals = {
    indexMimeTypes: new Set([
        'application/vnd.apple.mpegurl',
        'application/x-mpegurl',
        'audio/mpegurl'
    ]),
    segmentMimeTypes: new Set([
        'video/mp2t',
        'video/mpeg',
github parcel-bundler / parcel / packages / core / repl / src / components / Editor.js View on Github external
// eslint-disable-next-line no-unused-vars
import {h} from 'preact';
import path from 'path';
import mime from 'mime-types';
mime.types.ts = 'application/typescript';

// eslint-disable-next-line no-unused-vars
import {Controlled as CodeMirror} from 'react-codemirror2';
import 'codemirror/mode/jsx/jsx.js';
import 'codemirror/mode/css/css.js';
import 'codemirror/mode/htmlmixed/htmlmixed.js';
import 'codemirror/mode/yaml/yaml.js';
import 'codemirror/mode/toml/toml.js';
import 'codemirror/mode/markdown/markdown.js';

import 'codemirror/lib/codemirror.css';

function patchMime(v) {
  if (/(?:application|text)\/javascript/.test(v)) return 'text/jsx';
  else if (v === 'text/less') return 'text/x-less';
  else return v;