Was named incorrectly before.
* Cleans up tokenizer code getting rid of unnecessary state.
* Moves source maps tracker into lib/source-maps/track.
* Moves tokenizer code into lib/tokenizer.
+* Moves URL scanner into lib/urls/reduce (was named incorrectly before).
* Moves URL rebasing & rewriting into lib/urls.
* Fixed issue [#436](https://github.com/jakubpawlowicz/clean-css/issues/436) - refactors URI rewriting.
var EscapeStore = require('./escape-store');
-var UrlScanner = require('../utils/url-scanner');
+var reduceUrls = require('../urls/reduce');
var lineBreak = require('os').EOL;
var saveWaypoints = this.saveWaypoints;
var self = this;
- return new UrlScanner(data, this.context).reduce(function (url, tempData) {
+ return reduceUrls(data, this.context, function (url, tempData) {
if (saveWaypoints) {
breaksCount = url.split(lineBreak).length - 1;
lastBreakAt = url.lastIndexOf(lineBreak);
var UPPERCASE_URL_PREFIX = 'URL(';
var URL_SUFFIX = ')';
-function UrlScanner(data, context) {
- this.data = data;
- this.context = context;
-}
-
-UrlScanner.prototype.reduce = function (callback) {
+function reduceUrls(data, context, callback) {
var nextStart = 0;
var nextStartUpperCase = 0;
var nextEnd = 0;
var cursor = 0;
var tempData = [];
- var data = this.data;
var hasUppercaseUrl = data.indexOf(UPPERCASE_URL_PREFIX) > -1;
for (; nextEnd < data.length;) {
else
nextEnd--;
- this.context.warnings.push('Broken URL declaration: \'' + data.substring(nextStart, nextEnd + 1) + '\'.');
+ context.warnings.push('Broken URL declaration: \'' + data.substring(nextStart, nextEnd + 1) + '\'.');
} else {
if (data[nextEnd] != URL_SUFFIX)
nextEnd = data.indexOf(URL_SUFFIX, nextEnd);
return tempData.length > 0 ?
tempData.join('') + data.substring(cursor, data.length) :
data;
-};
+}
-module.exports = UrlScanner;
+module.exports = reduceUrls;
var path = require('path');
var url = require('url');
-var UrlScanner = require('../utils/url-scanner');
+var reduceUrls = require('./reduce');
var isWindows = process.platform == 'win32';
}
function rewriteUrls(data, options, context) {
- return new UrlScanner(data, context).reduce(function (url, tempData) {
+ return reduceUrls(data, context, function (url, tempData) {
url = url.replace(/^url\(\s*['"]?|['"]?\s*\)$/g, '');
tempData.push('url(' + rebase(url, options) + ')');
});