UNPKG

webpack-ext-reloader-mv3

Version:

Watch for file changes and reload WebExtensions on browsers.

39 lines (33 loc) 1.13 kB
/* eslint-disable no-throw-literal */ import { resolve } from "path"; import { cwd } from "process"; import { log } from "util"; import { DEFAULT_CONFIG, DEFAULT_PORT } from "../src/constants/options.constants"; import { IPluginOptions } from "../typings/webpack-ext-reloader"; import { CONFIG, HELP, MANIFEST, NO_PAGE_RELOAD, PORT } from "./args.constant"; import { SIG_EXIT } from "./events.constants"; import manual from "./manual"; export default (args: object) => { if (args[HELP]) { log(manual()); throw { type: SIG_EXIT, payload: 0 }; } const config = args[CONFIG] || DEFAULT_CONFIG; const port = args[PORT] || DEFAULT_PORT; const manifest = args[MANIFEST] || null; const pluginOptions: IPluginOptions = { manifest, port, reloadPage: !args[NO_PAGE_RELOAD], }; const optPath = resolve(cwd(), config); try { // eslint-disable-next-line no-eval const webpackConfig = eval("require")(optPath); return { webpackConfig, pluginOptions }; } catch (err) { log(`[Error] Couldn't require the file: ${optPath}`); log(err); throw { type: SIG_EXIT, payload: 1 }; } };