UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

84 lines (83 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginManagerImpl = void 0; const foxpage_plugin_1 = require("@foxpage/foxpage-plugin"); const foxpage_shared_1 = require("@foxpage/foxpage-shared"); const reporter_1 = require("../reporter"); /** * plugin manager for ssr * * @export * @class PluginManager * @implements {PluginManager} */ class PluginManagerImpl { constructor(opt) { const reporter = (0, reporter_1.getReporter)(); this.logger = (0, foxpage_shared_1.createLogger)('ssrPluginManager'); this.loader = (0, foxpage_plugin_1.createPluginLoader)({ baseDir: opt.baseDir || process.cwd(), plugins: opt.plugins, api: opt.api, mode: opt.mode, reporter: reporter ? Object.assign(Object.assign({}, reporter), { pluginReporter: (name, value) => { var _a; (_a = reporter.pluginReporter) === null || _a === void 0 ? void 0 : _a.call(reporter, name, value, { appId: opt.appId }); } }) : undefined, }); } /** * load plugins * */ loadPlugins() { try { this.loader.load(); } catch (e) { const msg = e.message; this.logger.error(msg); throw new Error(msg); } } /** * get one plugin * * @param {string} name * @return {*} */ getPlugin(name) { return this.loader.getPlugin(name); } /** * get plugins * * @return {*} */ getPlugins() { return this.loader.getList(); } /** * getHooks */ getHooks(mode) { return this.loader.getHooks(mode); } /** * check plugin * * @param {string} name * @return {*} */ hasPlugin(name) { return this.loader.hasPlugin(name); } /** * destroy */ destroy() { this.loader.destroy(); } } exports.PluginManagerImpl = PluginManagerImpl;