style-loader
Advanced tools
Comparing version 1.1.1 to 1.1.2
@@ -5,2 +5,10 @@ # Changelog | ||
### [1.1.2](https://github.com/webpack-contrib/style-loader/compare/v1.1.1...v1.1.2) (2019-12-25) | ||
### Bug Fixes | ||
* algorithm for importing modules ([#449](https://github.com/webpack-contrib/style-loader/issues/449)) ([91ceaf2](https://github.com/webpack-contrib/style-loader/commit/91ceaf2b7e03f065d2a8cace1b733777848d4e86)) | ||
* checking that the list of modules is an array ([#448](https://github.com/webpack-contrib/style-loader/issues/448)) ([1138ed7](https://github.com/webpack-contrib/style-loader/commit/1138ed7e04848b570a70e493b410902cfc4a9076)) | ||
### [1.1.1](https://github.com/webpack-contrib/style-loader/compare/v1.1.0...v1.1.1) (2019-12-20) | ||
@@ -7,0 +15,0 @@ |
@@ -121,5 +121,3 @@ "use strict"; | ||
if (!(refs++)) { | ||
var id = ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)}; | ||
dispose = api(id, content, options); | ||
dispose = api(module.id, content, options); | ||
} | ||
@@ -186,4 +184,3 @@ | ||
var id = ${_loaderUtils.default.stringifyRequest(this, `!!${request}`)}; | ||
var update = api(id, content, options); | ||
var update = api(module.id, content, options); | ||
@@ -190,0 +187,0 @@ var exported = content.locals ? content.locals : {}; |
"use strict"; | ||
var stylesInDom = {}; | ||
var isOldIE = function isOldIE() { | ||
@@ -45,36 +43,18 @@ var memo; | ||
function addModulesToDom(id, list, options) { | ||
id = options.base ? id + options.base : id; | ||
var stylesInDom = {}; | ||
if (!stylesInDom[id]) { | ||
stylesInDom[id] = []; | ||
} | ||
function modulesToDom(moduleId, list, options) { | ||
for (var i = 0; i < list.length; i++) { | ||
var item = list[i]; | ||
var part = { | ||
css: item[1], | ||
media: item[2], | ||
sourceMap: item[3] | ||
css: list[i][1], | ||
media: list[i][2], | ||
sourceMap: list[i][3] | ||
}; | ||
var styleInDomById = stylesInDom[id]; | ||
if (styleInDomById[i]) { | ||
styleInDomById[i].updater(part); | ||
if (stylesInDom[moduleId][i]) { | ||
stylesInDom[moduleId][i](part); | ||
} else { | ||
styleInDomById.push({ | ||
updater: addStyle(part, options) | ||
}); | ||
stylesInDom[moduleId].push(addStyle(part, options)); | ||
} | ||
} | ||
for (var j = list.length; j < stylesInDom[id].length; j++) { | ||
stylesInDom[id][j].updater(); | ||
} | ||
stylesInDom[id].length = list.length; | ||
if (stylesInDom[id].length === 0) { | ||
delete stylesInDom[id]; | ||
} | ||
} | ||
@@ -220,3 +200,3 @@ | ||
module.exports = function (id, list, options) { | ||
module.exports = function (moduleId, list, options) { | ||
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style> | ||
@@ -229,6 +209,33 @@ // tags it will allow on a page | ||
addModulesToDom(id, list, options); | ||
moduleId = options.base ? moduleId + options.base : moduleId; | ||
list = list || []; | ||
if (!stylesInDom[moduleId]) { | ||
stylesInDom[moduleId] = []; | ||
} | ||
modulesToDom(moduleId, list, options); | ||
return function update(newList) { | ||
addModulesToDom(id, newList || [], options); | ||
newList = newList || []; | ||
if (Object.prototype.toString.call(newList) !== '[object Array]') { | ||
return; | ||
} | ||
if (!stylesInDom[moduleId]) { | ||
stylesInDom[moduleId] = []; | ||
} | ||
modulesToDom(moduleId, newList, options); | ||
for (var j = newList.length; j < stylesInDom[moduleId].length; j++) { | ||
stylesInDom[moduleId][j](); | ||
} | ||
stylesInDom[moduleId].length = newList.length; | ||
if (stylesInDom[moduleId].length === 0) { | ||
delete stylesInDom[moduleId]; | ||
} | ||
}; | ||
}; |
{ | ||
"name": "style-loader", | ||
"version": "1.1.1", | ||
"version": "1.1.2", | ||
"description": "style loader module for webpack", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
50184
425