emarschner/iconify

View on GitHub
src/browser/index.js

Summary

Maintainability
A
0 mins
Test Coverage
var $ = require('jquery');

var Main = module.exports = require('../core')({
  $: $,
  DOMParser: DOMParser,
  XMLSerializer: XMLSerializer,
  btoa: btoa,
  fetchSvg: function (location, options) {
    var fetched = $.Deferred(),
        ajaxSettings = $.extend({}, options);

    Object.keys(Main.load.defaultOptions).forEach(function (key) {
      delete ajaxSettings[key];
    });

    $.ajax(location, ajaxSettings).then(function (data, status, xhr) {
      var xml = xhr.responseXML;

      fetched.resolve(xml instanceof Document && xml.documentElement ||
          (typeof options.decode === 'function' ? options.decode(data) : xhr.responseText));
    }).fail(function (xhr, status, error) {
      fetched.reject(error);
    });

    return fetched;
  },
  writeRules: function (rules, options) {
    var style = document.createElement('style');

    style.className = options.family + ' icons';
    document.head.appendChild(style);

    var styleSheet = style.sheet,
        cssRules = styleSheet.cssRules;

    rules.forEach(function (rule) {
      styleSheet.insertRule(rule, cssRules.length);
    });
  }
});