Opal-Estate-Pro/node_modules/livereload-js/lib/less.js
2019-09-13 11:27:52 +07:00

63 lines
1.7 KiB
JavaScript

(function() {
var LessPlugin;
module.exports = LessPlugin = (function() {
LessPlugin.identifier = 'less';
LessPlugin.version = '1.0';
function LessPlugin(window, host) {
this.window = window;
this.host = host;
}
LessPlugin.prototype.reload = function(path, options) {
if (this.window.less && this.window.less.refresh) {
if (path.match(/\.less$/i)) {
return this.reloadLess(path);
}
if (options.originalPath.match(/\.less$/i)) {
return this.reloadLess(options.originalPath);
}
}
return false;
};
LessPlugin.prototype.reloadLess = function(path) {
var i, len, link, links;
links = (function() {
var i, len, ref, results;
ref = document.getElementsByTagName('link');
results = [];
for (i = 0, len = ref.length; i < len; i++) {
link = ref[i];
if (link.href && link.rel.match(/^stylesheet\/less$/i) || (link.rel.match(/stylesheet/i) && link.type.match(/^text\/(x-)?less$/i))) {
results.push(link);
}
}
return results;
})();
if (links.length === 0) {
return false;
}
for (i = 0, len = links.length; i < len; i++) {
link = links[i];
link.href = this.host.generateCacheBustUrl(link.href);
}
this.host.console.log("LiveReload is asking LESS to recompile all stylesheets");
this.window.less.refresh(true);
return true;
};
LessPlugin.prototype.analyze = function() {
return {
disable: !!(this.window.less && this.window.less.refresh)
};
};
return LessPlugin;
})();
}).call(this);