livereload-js
Version:
LiveReload JS client - auto reload browser on changes
61 lines (46 loc) • 1.3 kB
JavaScript
class LessPlugin {
constructor (window, host) {
this.window = window;
this.host = host;
}
reload (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;
}
reloadLess (path) {
let link;
const links = ((() => {
const result = [];
for (link of Array.from(document.getElementsByTagName('link'))) {
if ((link.href && link.rel.match(/^stylesheet\/less$/i)) || (link.rel.match(/stylesheet/i) && link.type.match(/^text\/(x-)?less$/i))) {
result.push(link);
}
}
return result;
})());
if (links.length === 0) {
return false;
}
for (link of Array.from(links)) {
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;
}
analyze () {
return {
disable: !!(this.window.less && this.window.less.refresh)
};
}
};
LessPlugin.identifier = 'less';
LessPlugin.version = '1.0';
module.exports = LessPlugin;