refactor: unwrap TuiPluginRuntime namespace + self-reexport (#22980)

This commit is contained in:
Kit Langton
2026-04-17 01:02:07 +00:00
committed by GitHub
parent 5022895e2b
commit 94878d76f8
@@ -918,13 +918,12 @@ async function installPluginBySpec(
}
}
export namespace TuiPluginRuntime {
let dir = ""
let loaded: Promise<void> | undefined
let runtime: RuntimeState | undefined
export const Slot = View
let dir = ""
let loaded: Promise<void> | undefined
let runtime: RuntimeState | undefined
export const Slot = View
export async function init(input: { api: HostPluginApi; config: TuiConfig.Info }) {
export async function init(input: { api: HostPluginApi; config: TuiConfig.Info }) {
const cwd = process.cwd()
if (loaded) {
if (dir !== cwd) {
@@ -936,30 +935,30 @@ export namespace TuiPluginRuntime {
dir = cwd
loaded = load(input)
return loaded
}
}
export function list() {
export function list() {
if (!runtime) return []
return listPluginStatus(runtime)
}
}
export async function activatePlugin(id: string) {
export async function activatePlugin(id: string) {
return activatePluginById(runtime, id, true)
}
}
export async function deactivatePlugin(id: string) {
export async function deactivatePlugin(id: string) {
return deactivatePluginById(runtime, id, true)
}
}
export async function addPlugin(spec: string) {
export async function addPlugin(spec: string) {
return addPluginBySpec(runtime, spec)
}
}
export async function installPlugin(spec: string, options?: { global?: boolean }) {
export async function installPlugin(spec: string, options?: { global?: boolean }) {
return installPluginBySpec(runtime, spec, options?.global)
}
}
export async function dispose() {
export async function dispose() {
const task = loaded
loaded = undefined
dir = ""
@@ -971,9 +970,9 @@ export namespace TuiPluginRuntime {
for (const plugin of queue) {
await deactivatePluginEntry(state, plugin, false)
}
}
}
async function load(input: { api: Api; config: TuiConfig.Info }) {
async function load(input: { api: Api; config: TuiConfig.Info }) {
const { api, config } = input
const cwd = process.cwd()
const slots = setupSlots(api)
@@ -1026,5 +1025,6 @@ export namespace TuiPluginRuntime {
} catch (error) {
fail("failed to load tui plugins", { directory: cwd, error })
}
}
}
export * as TuiPluginRuntime from "./runtime"