diff --git a/index.js b/index.js index eaa06a7..e71b1be 100644 --- a/index.js +++ b/index.js @@ -1,22 +1,31 @@ /* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra + */ var loaderUtils = require("loader-utils"); var mime = require("mime"); + module.exports = function(content) { - this.cacheable && this.cacheable(); - var query = loaderUtils.getOptions(this) || {}; - var limit = (this.options && this.options.url && this.options.url.dataUrlLimit) || 0; - if(query.limit) { - limit = parseInt(query.limit, 10); - } - var mimetype = query.mimetype || query.minetype || mime.lookup(this.resourcePath); - if(limit <= 0 || content.length < limit) { - return "module.exports = " + JSON.stringify("data:" + (mimetype ? mimetype + ";" : "") + "base64," + content.toString("base64")); - } else { - var fileLoader = require("file-loader"); - return fileLoader.call(this, content); - } + this.cacheable && this.cacheable(); + + var options = loaderUtils.getOptions(this) || {}; + // Options `dataUrlLimit` is backward compatibility with first loader versions + var limit = options.limit || (this.options && this.options.url && this.options.url.dataUrlLimit); + + if(limit) { + limit = parseInt(limit, 10); + } + + var mimetype = options.mimetype || options.minetype || mime.lookup(this.resourcePath); + + // No limits or limit more than content length + if(!limit || content.length < limit) { + return "module.exports = " + JSON.stringify("data:" + (mimetype ? mimetype + ";" : "") + "base64," + content.toString("base64")); + } + + var fileLoader = require("file-loader"); + + return fileLoader.call(this, content); } + module.exports.raw = true;