mirror of
https://github.com/hanzoai/postcss.git
synced 2026-09-24 17:01:56 +00:00
57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
var get = require('./get');
|
|
|
|
var findStyles = function (url, callback) {
|
|
if ( url.match(/\.css$/) ) {
|
|
callback([url]);
|
|
return;
|
|
}
|
|
|
|
get(url, function (html) {
|
|
var files = html.match(/[^"]+\.css("|')/g);
|
|
if ( !files ) throw "Can't find CSS links at " + url;
|
|
files = files.map(function(path) {
|
|
path = path.slice(0, -1);
|
|
if ( path.match(/^https?:/) ) {
|
|
return path;
|
|
} else {
|
|
return path.replace(/^\.?\.?\/?/, url);
|
|
}
|
|
});
|
|
callback(files);
|
|
});
|
|
};
|
|
|
|
module.exports = function (sites, callbacks) {
|
|
var links = [];
|
|
var nextLink = function () {
|
|
if ( links.length === 0 ) {
|
|
nextSite();
|
|
return;
|
|
}
|
|
|
|
var url = links.shift();
|
|
get(url, function (css) {
|
|
if ( callbacks.css(css, url) ) {
|
|
nextLink();
|
|
}
|
|
});
|
|
};
|
|
|
|
var nextSite = function () {
|
|
if ( sites.length === 0 ) {
|
|
callbacks.done();
|
|
return;
|
|
}
|
|
var site = sites.shift();
|
|
var name = Object.keys(site)[0];
|
|
callbacks.site(name);
|
|
|
|
findStyles(site[name], function (files) {
|
|
links = files;
|
|
nextLink();
|
|
});
|
|
};
|
|
|
|
nextSite();
|
|
};
|