Skip to content

Commit 8ecfa25

Browse files
committed
Run rtlcss processing before webpack processing
1 parent 105a4e3 commit 8ecfa25

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

.travis.yml

+2-5
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ node_js:
44
- "0.12"
55
- "node"
66
- "iojs"
7-
script: npm run travis
87

9-
after_success:
10-
- cat ./coverage/lcov.info | node_modules/.bin/coveralls --verbose
11-
- cat ./coverage/coverage.json | node_modules/codecov.io/bin/codecov.io.js
12-
- rm -rf ./coverage
8+
notifications:
9+
email: false

lib/loader.js

+23-3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ module.exports = function(content, map) {
3333
if(err) return callback(err);
3434

3535
var cssAsString = JSON.stringify(result.source);
36+
var rtlcssAsString = JSON.stringify(rtlcss.process(result.source));
3637

3738
// for importing CSS
3839
var importUrlPrefix = getImportPrefix(this, query);
@@ -86,15 +87,34 @@ module.exports = function(content, map) {
8687
}.bind(this));
8788
}
8889

90+
rtlcssAsString = rtlcssAsString.replace(result.importItemRegExpG, importItemMatcher.bind(this));
91+
if(query.url !== false) {
92+
rtlcssAsString = rtlcssAsString.replace(result.urlItemRegExpG, function(item) {
93+
var match = result.urlItemRegExp.exec(item);
94+
var idx = +match[1];
95+
var urlItem = result.urlItems[idx];
96+
var url = urlItem.url;
97+
idx = url.indexOf("?#");
98+
if(idx < 0) idx = url.indexOf("#");
99+
var urlRequest;
100+
if(idx > 0) { // idx === 0 is catched by isUrlRequest
101+
// in cases like url('webfont.eot?#iefix')
102+
urlRequest = url.substr(0, idx);
103+
return "\" + require(" + loaderUtils.stringifyRequest(this, urlRequest) + ") + \"" +
104+
url.substr(idx);
105+
}
106+
urlRequest = url;
107+
return "\" + require(" + loaderUtils.stringifyRequest(this, urlRequest) + ") + \"";
108+
}.bind(this));
109+
}
110+
89111

90112
var exportJs = compileExports(result, importItemMatcher.bind(this), camelCaseKeys);
91113
if (exportJs) {
92114
exportJs = "exports.locals = " + exportJs + ";";
93115
}
94116

95-
var rtlcssAsString = JSON.stringify(rtlcss.process(JSON.parse(cssAsString)))
96-
97-
var cssString = "document.getElementsByTagName('html')[0].getAttribute('dir') === 'rtl' ? " + rtlcssAsString + " : " + cssAsString;
117+
var cssString = "typeof document !== 'undefined' && document.getElementsByTagName('html')[0].getAttribute('dir') === 'rtl' ? " + rtlcssAsString + " : " + cssAsString;
98118

99119
var moduleJs;
100120
if(query.sourceMap && result.map) {

0 commit comments

Comments
 (0)