Skip to content

Instantly share code, notes, and snippets.

@wilkerlucio
Last active March 29, 2016 17:46
Show Gist options
  • Select an option

  • Save wilkerlucio/06e7abd76a3578c2990438b3fc5c615d to your computer and use it in GitHub Desktop.

Select an option

Save wilkerlucio/06e7abd76a3578c2990438b3fc5c615d to your computer and use it in GitHub Desktop.
Figwheel Chrome Content Script
var resourceURL = function (src) {
return chrome.extension.getURL("js/goog/" + src);
};
var loadSync = function(src) {
var xhr = new XMLHttpRequest();
xhr.open("GET", src, false);
xhr.send(null);
return xhr.responseText;
};
var inlineSourceMaps = function (src, source) {
if (!source.match("sourceMappingURL=")) {return source;}
var srcParts = src.split("/");
srcParts.pop();
var mapSrc = resourceURL(src + ".map");
var srcmap = JSON.parse(loadSync(mapSrc));
srcmap.sourcesContent = [loadSync(resourceURL(srcParts.concat(srcmap.sources).join("/")))];
try {
var datauri = 'data:application/json;charset=utf-8;base64,' + btoa(JSON.stringify(srcmap));
return source.replace(/\/\/# sourceMappingURL=.+/, "//# sourceMappingURL=" + datauri);
} catch (e) {
console.warn("Error inlining source maps for", src, e);
return source.replace(/\/\/# sourceMappingURL=.+/, "");
}
};
var requireFile = function (src, opt_source) {
var path = resourceURL(src);
var source = loadSync(path);
eval(inlineSourceMaps(src, source));
return true;
};
var CLOSURE_NO_DEPS = true;
var CLOSURE_IMPORT_SCRIPT = requireFile;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment