every-plugin
Version:
41 lines (40 loc) • 2.14 kB
text/typescript
import { PluginRuntimeError } from "../errors.mjs";
import { AnyPlugin, AnyPluginConstructor, InitializedPlugin, LoadedPlugin, PluginInstance, PluginMetadata, PluginRegistry, SecretsConfig } from "../../types.mjs";
import { PluginLifecycleService } from "./plugin-lifecycle.service.mjs";
import { PluginLoaderService } from "./plugin-loader.service.mjs";
import * as _$_orpc_contract0 from "@orpc/contract";
import { Effect, Layer, Scope } from "effect";
//#region src/runtime/services/plugin.service.d.ts
declare const PluginService_base: Effect.Service.Class<PluginService, "PluginService", {
readonly scoped: Effect.Effect<{
loadPlugin: (pluginId: string) => Effect.Effect<{
ctor: any;
metadata: PluginMetadata;
}, PluginRuntimeError, never>;
instantiatePlugin: <T extends AnyPlugin>(pluginId: string, loadedPlugin: LoadedPlugin<T>) => Effect.Effect<{
plugin: T;
metadata: PluginMetadata;
}, PluginRuntimeError, never>;
initializePlugin: <T extends AnyPlugin>(pluginInstance: PluginInstance<T>, config: {
variables: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["variables"]>;
secrets: _$_orpc_contract0.InferSchemaInput<T["configSchema"]["secrets"]>;
}, plugins?: Record<string, unknown>) => Effect.Effect<{
plugin: T;
metadata: PluginMetadata;
config: {
variables: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["variables"]>;
secrets: _$_orpc_contract0.InferSchemaOutput<T["configSchema"]["secrets"]>;
};
context: any;
scope: Scope.CloseableScope;
}, PluginRuntimeError, never>;
shutdownPlugin: (plugin: InitializedPlugin<AnyPlugin>) => Effect.Effect<void, never, never>;
cleanup: () => Effect.Effect<void, never, never>;
}, never, PluginLoaderService | PluginLifecycleService>;
}>;
declare class PluginService extends PluginService_base {
static Live: (registry: PluginRegistry, secrets: SecretsConfig, pluginMap?: Record<string, AnyPluginConstructor>) => Layer.Layer<PluginService, never, never>;
}
//#endregion
export { PluginService };
//# sourceMappingURL=plugin.service.d.mts.map