UNPKG

every-plugin

Version:
33 lines (31 loc) 2.19 kB
const require_runtime = require('../../_virtual/_rolldown/runtime.cjs'); const require_module_federation_service = require('./module-federation.service.cjs'); const require_plugin_lifecycle_service = require('./plugin-lifecycle.service.cjs'); const require_secrets_service = require('./secrets.service.cjs'); const require_plugin_loader_service = require('./plugin-loader.service.cjs'); let effect = require("effect"); //#region src/runtime/services/plugin.service.ts var PluginService = class PluginService extends effect.Effect.Service()("PluginService", { scoped: effect.Effect.gen(function* () { const loader = yield* require_plugin_loader_service.PluginLoaderService; const lifecycle = yield* require_plugin_lifecycle_service.PluginLifecycleService; return { loadPlugin: loader.loadPlugin, instantiatePlugin: loader.instantiatePlugin, initializePlugin: loader.initializePlugin, shutdownPlugin: (plugin) => effect.Effect.gen(function* () { yield* plugin.plugin.shutdown().pipe(effect.Effect.catchAll((error) => effect.Effect.logWarning(`Failed to shutdown plugin ${plugin.plugin.id}`, error))); yield* effect.Scope.close(plugin.scope, effect.Exit.succeed(void 0)); yield* lifecycle.unregister(plugin); }), cleanup: lifecycle.cleanup }; }) }) { static Live = (registry, secrets, pluginMap = {}) => { const contextLayer = effect.Layer.mergeAll(effect.Layer.succeed(require_plugin_loader_service.PluginRegistryTag, registry), effect.Layer.succeed(require_secrets_service.SecretsConfigTag, secrets), effect.Layer.succeed(require_plugin_loader_service.PluginMapTag, pluginMap)); const servicesLayer = effect.Layer.mergeAll(require_module_federation_service.ModuleFederationService.Default, require_secrets_service.SecretsService.Default, require_plugin_loader_service.RegistryService.Default, require_plugin_lifecycle_service.PluginLifecycleService.Default).pipe(effect.Layer.provide(contextLayer)); return PluginService.Default.pipe(effect.Layer.provide(require_plugin_loader_service.PluginLoaderService.Default), effect.Layer.provide(servicesLayer)); }; }; //#endregion exports.PluginService = PluginService; //# sourceMappingURL=plugin.service.cjs.map