Skip to content

Commit 3fb551c

Browse files
committed
FIX: group at rule selText duplicate bug
1 parent f644506 commit 3fb551c

7 files changed

+40
-6
lines changed

dist/cssobj-plugin-selector-localize.amd.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ define('cssobj_plugin_selector_localize', function () { 'use strict';
2929
}
3030

3131
var map = function(name) {
32-
return name in localNames ? localNames[name] : prefix + name
32+
return name in localNames
33+
? localNames[name]
34+
: prefix + name
3335
}
3436

3537
return function localizeName (sel, node, result) {
38+
// don't touch at rule's selText
39+
// it's copied from parent, which already localized
40+
if(node.at) return sel
3641
if(!result.map) result.map = map
3742
return sel.replace(reClass, replacer)
3843
}

dist/cssobj-plugin-selector-localize.cjs.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ function cssobj_plugin_selector_localize(prefix, localNames) {
2929
}
3030

3131
var map = function(name) {
32-
return name in localNames ? localNames[name] : prefix + name
32+
return name in localNames
33+
? localNames[name]
34+
: prefix + name
3335
}
3436

3537
return function localizeName (sel, node, result) {
38+
// don't touch at rule's selText
39+
// it's copied from parent, which already localized
40+
if(node.at) return sel
3641
if(!result.map) result.map = map
3742
return sel.replace(reClass, replacer)
3843
}

dist/cssobj-plugin-selector-localize.es.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,15 @@ function cssobj_plugin_selector_localize(prefix, localNames) {
2727
}
2828

2929
var map = function(name) {
30-
return name in localNames ? localNames[name] : prefix + name
30+
return name in localNames
31+
? localNames[name]
32+
: prefix + name
3133
}
3234

3335
return function localizeName (sel, node, result) {
36+
// don't touch at rule's selText
37+
// it's copied from parent, which already localized
38+
if(node.at) return sel
3439
if(!result.map) result.map = map
3540
return sel.replace(reClass, replacer)
3641
}

dist/cssobj-plugin-selector-localize.iife.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,15 @@ var cssobj_plugin_selector_localize = (function () {
3030
}
3131

3232
var map = function(name) {
33-
return name in localNames ? localNames[name] : prefix + name
33+
return name in localNames
34+
? localNames[name]
35+
: prefix + name
3436
}
3537

3638
return function localizeName (sel, node, result) {
39+
// don't touch at rule's selText
40+
// it's copied from parent, which already localized
41+
if(node.at) return sel
3742
if(!result.map) result.map = map
3843
return sel.replace(reClass, replacer)
3944
}

dist/cssobj-plugin-selector-localize.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/cssobj-plugin-selector-localize.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ export default function cssobj_plugin_selector_localize(prefix, localNames) {
2222
}
2323

2424
var map = function(name) {
25-
return name in localNames ? localNames[name] : prefix + name
25+
return name in localNames
26+
? localNames[name]
27+
: prefix + name
2628
}
2729

2830
return function localizeName (sel, node, result) {
31+
// don't touch at rule's selText
32+
// it's copied from parent, which already localized
33+
if(node.at) return sel
2934
if(!result.map) result.map = map
3035
return sel.replace(reClass, replacer)
3136
}

test/test.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,13 @@ describe('Test plugin selector localize', function() {
135135

136136
})
137137

138+
it('should work right with repeated class', function() {
139+
var loc = lib('_prefix_')
140+
var result = {}
141+
142+
var ret = loc('body .nav .nav.nav', {}, result)
143+
expect(ret).equal('body ._prefix_nav ._prefix_nav._prefix_nav')
144+
145+
})
146+
138147
})

0 commit comments

Comments
 (0)