UNPKG

@wocker/ws

Version:

Docker workspace for web projects

68 lines (67 loc) 2.9 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var PluginModule_1; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginModule = void 0; const core_1 = require("@wocker/core"); const core_2 = require("../core"); const package_manager_1 = require("../package-manager"); const PluginController_1 = require("./controllers/PluginController"); const PluginService_1 = require("./services/PluginService"); let PluginModule = PluginModule_1 = class PluginModule { static register() { return { module: PluginModule_1, inject: [ core_1.AppConfigService, core_1.AppFileSystemService, core_1.LogService, PluginService_1.PluginService ], useFactory: async (appConfigService, fs, logService, pluginService) => { const imports = []; for (const pluginData of appConfigService.plugins) { try { const plugin = await pluginService.import(pluginData.name); imports.push({ module: plugin.type, providers: [ { provide: core_1.PLUGIN_DIR_KEY, useValue: fs.path("plugins", plugin.name) } ] }); } catch (err) { logService.error(err.message, { pluginName: pluginData.name, pluginEnv: pluginData.env }); appConfigService.removePlugin(pluginData.name); appConfigService.save(); } } return { imports }; } }; } }; exports.PluginModule = PluginModule; exports.PluginModule = PluginModule = PluginModule_1 = __decorate([ (0, core_1.Module)({ imports: [ core_2.CoreModule, package_manager_1.PackageManagerModule ], controllers: [PluginController_1.PluginController], providers: [PluginService_1.PluginService] }) ], PluginModule);