webpack-ext-reloader-mv3
Version:
Watch for file changes and reload WebExtensions on browsers.
32 lines (27 loc) • 858 B
text/typescript
import { log } from "util";
import * as webpack from "webpack";
import ExtensionReloaderImpl from "../src/ExtensionReloader";
import { info } from "../src/utils/logger";
import { IPluginOptions } from "../typings/webpack-ext-reloader";
export default class ExtensionCompiler {
private static treatErrors(err) {
log(err.stack || err);
if (err.details) {
log(err.details);
}
}
private compiler;
constructor(config: webpack.Configuration, pluginOptions: IPluginOptions) {
this.compiler = webpack(config);
new ExtensionReloaderImpl(pluginOptions).apply(this.compiler);
}
public watch() {
// eslint-disable-next-line consistent-return
this.compiler.watch({}, (err, stats) => {
if (err) {
return ExtensionCompiler.treatErrors(err);
}
info(stats.toString({ colors: true }));
});
}
}