@foxpage/foxpage-manager
Version:
foxpage resource manager
84 lines (83 loc) • 2.08 kB
JavaScript
;
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;