feat: unwrap config namespaces to flat exports + barrel (#22746)
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
import { Config } from "../src/config"
|
import { Config } from "../src/config"
|
||||||
import { TuiConfig } from "../src/config/tui"
|
import { TuiConfig } from "../src/config"
|
||||||
|
|
||||||
function generate(schema: z.ZodType) {
|
function generate(schema: z.ZodType) {
|
||||||
const result = z.toJSONSchema(schema, {
|
const result = z.toJSONSchema(schema, {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { intro, log, outro, spinner } from "@clack/prompts"
|
import { intro, log, outro, spinner } from "@clack/prompts"
|
||||||
import type { Argv } from "yargs"
|
import type { Argv } from "yargs"
|
||||||
|
|
||||||
import { ConfigPaths } from "../../config/paths"
|
import { ConfigPaths } from "../../config"
|
||||||
import { Global } from "../../global"
|
import { Global } from "../../global"
|
||||||
import { installPlugin, patchPluginConfig, readPluginManifest } from "../../plugin/install"
|
import { installPlugin, patchPluginConfig, readPluginManifest } from "../../plugin/install"
|
||||||
import { resolvePluginTarget } from "../../plugin/shared"
|
import { resolvePluginTarget } from "../../plugin/shared"
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ import { ArgsProvider, useArgs, type Args } from "./context/args"
|
|||||||
import open from "open"
|
import open from "open"
|
||||||
import { PromptRefProvider, usePromptRef } from "./context/prompt"
|
import { PromptRefProvider, usePromptRef } from "./context/prompt"
|
||||||
import { TuiConfigProvider, useTuiConfig } from "./context/tui-config"
|
import { TuiConfigProvider, useTuiConfig } from "./context/tui-config"
|
||||||
import { TuiConfig } from "@/config/tui"
|
import { TuiConfig } from "@/config"
|
||||||
import { createTuiApi, TuiPluginRuntime, type RouteMap } from "./plugin"
|
import { createTuiApi, TuiPluginRuntime, type RouteMap } from "./plugin"
|
||||||
import { FormatError, FormatUnknownError } from "@/cli/error"
|
import { FormatError, FormatUnknownError } from "@/cli/error"
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { cmd } from "../cmd"
|
|||||||
import { UI } from "@/cli/ui"
|
import { UI } from "@/cli/ui"
|
||||||
import { tui } from "./app"
|
import { tui } from "./app"
|
||||||
import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"
|
import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"
|
||||||
import { TuiConfig } from "@/config/tui"
|
import { TuiConfig } from "@/config"
|
||||||
import { Instance } from "@/project/instance"
|
import { Instance } from "@/project/instance"
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { createMemo } from "solid-js"
|
import { createMemo } from "solid-js"
|
||||||
import { Keybind } from "@/util"
|
import { Keybind } from "@/util"
|
||||||
import { pipe, mapValues } from "remeda"
|
import { pipe, mapValues } from "remeda"
|
||||||
import type { TuiConfig } from "@/config/tui"
|
import type { TuiConfig } from "@/config"
|
||||||
import type { ParsedKey, Renderable } from "@opentui/core"
|
import type { ParsedKey, Renderable } from "@opentui/core"
|
||||||
import { createStore } from "solid-js/store"
|
import { createStore } from "solid-js/store"
|
||||||
import { useKeyboard, useRenderer } from "@opentui/solid"
|
import { useKeyboard, useRenderer } from "@opentui/solid"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { TuiConfig } from "@/config/tui"
|
import { TuiConfig } from "@/config"
|
||||||
import { createSimpleContext } from "./helper"
|
import { createSimpleContext } from "./helper"
|
||||||
|
|
||||||
export const { use: useTuiConfig, provider: TuiConfigProvider } = createSimpleContext({
|
export const { use: useTuiConfig, provider: TuiConfigProvider } = createSimpleContext({
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import type { useSDK } from "@tui/context/sdk"
|
|||||||
import type { useSync } from "@tui/context/sync"
|
import type { useSync } from "@tui/context/sync"
|
||||||
import type { useTheme } from "@tui/context/theme"
|
import type { useTheme } from "@tui/context/theme"
|
||||||
import { Dialog as DialogUI, type useDialog } from "@tui/ui/dialog"
|
import { Dialog as DialogUI, type useDialog } from "@tui/ui/dialog"
|
||||||
import type { TuiConfig } from "@/config/tui"
|
import type { TuiConfig } from "@/config"
|
||||||
import { createPluginKeybind } from "../context/plugin-keybinds"
|
import { createPluginKeybind } from "../context/plugin-keybinds"
|
||||||
import type { useKV } from "../context/kv"
|
import type { useKV } from "../context/kv"
|
||||||
import { DialogAlert } from "../ui/dialog-alert"
|
import { DialogAlert } from "../ui/dialog-alert"
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import path from "path"
|
|||||||
import { fileURLToPath } from "url"
|
import { fileURLToPath } from "url"
|
||||||
|
|
||||||
import { Config } from "@/config"
|
import { Config } from "@/config"
|
||||||
import { TuiConfig } from "@/config/tui"
|
import { TuiConfig } from "@/config"
|
||||||
import { Log } from "@/util"
|
import { Log } from "@/util"
|
||||||
import { errorData, errorMessage } from "@/util/error"
|
import { errorData, errorMessage } from "@/util/error"
|
||||||
import { isRecord } from "@/util/record"
|
import { isRecord } from "@/util/record"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import { Filesystem } from "@/util"
|
|||||||
import type { GlobalEvent } from "@opencode-ai/sdk/v2"
|
import type { GlobalEvent } from "@opencode-ai/sdk/v2"
|
||||||
import type { EventSource } from "./context/sdk"
|
import type { EventSource } from "./context/sdk"
|
||||||
import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"
|
import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"
|
||||||
import { TuiConfig } from "@/config/tui"
|
import { TuiConfig } from "@/config"
|
||||||
import { Instance } from "@/project/instance"
|
import { Instance } from "@/project/instance"
|
||||||
import { writeHeapSnapshot } from "v8"
|
import { writeHeapSnapshot } from "v8"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { MacOSScrollAccel, type ScrollAcceleration } from "@opentui/core"
|
import { MacOSScrollAccel, type ScrollAcceleration } from "@opentui/core"
|
||||||
import type { TuiConfig } from "@/config/tui"
|
import type { TuiConfig } from "@/config"
|
||||||
|
|
||||||
export class CustomSpeedScroll implements ScrollAcceleration {
|
export class CustomSpeedScroll implements ScrollAcceleration {
|
||||||
constructor(private speed: number) {}
|
constructor(private speed: number) {}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { AccountServiceError, AccountTransportError } from "@/account"
|
import { AccountServiceError, AccountTransportError } from "@/account"
|
||||||
import { ConfigMarkdown } from "@/config/markdown"
|
import { ConfigMarkdown } from "@/config"
|
||||||
import { errorFormat } from "@/util/error"
|
import { errorFormat } from "@/util/error"
|
||||||
import { Config } from "../config"
|
import { Config } from "../config"
|
||||||
import { MCP } from "../mcp"
|
import { MCP } from "../mcp"
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import {
|
|||||||
import { Instance, type InstanceContext } from "../project/instance"
|
import { Instance, type InstanceContext } from "../project/instance"
|
||||||
import { LSPServer } from "../lsp/server"
|
import { LSPServer } from "../lsp/server"
|
||||||
import { Installation } from "@/installation"
|
import { Installation } from "@/installation"
|
||||||
import { ConfigMarkdown } from "./markdown"
|
import { ConfigMarkdown } from "."
|
||||||
import { existsSync } from "fs"
|
import { existsSync } from "fs"
|
||||||
import { Bus } from "@/bus"
|
import { Bus } from "@/bus"
|
||||||
import { GlobalBus } from "@/bus/global"
|
import { GlobalBus } from "@/bus/global"
|
||||||
@@ -29,7 +29,7 @@ import { Event } from "../server/event"
|
|||||||
import { Glob } from "@opencode-ai/shared/util/glob"
|
import { Glob } from "@opencode-ai/shared/util/glob"
|
||||||
import { Account } from "@/account"
|
import { Account } from "@/account"
|
||||||
import { isRecord } from "@/util/record"
|
import { isRecord } from "@/util/record"
|
||||||
import { ConfigPaths } from "./paths"
|
import { ConfigPaths } from "."
|
||||||
import type { ConsoleState } from "./console-state"
|
import type { ConsoleState } from "./console-state"
|
||||||
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
||||||
import { InstanceState } from "@/effect"
|
import { InstanceState } from "@/effect"
|
||||||
|
|||||||
@@ -1 +1,4 @@
|
|||||||
export * as Config from "./config"
|
export * as Config from "./config"
|
||||||
|
export * as ConfigMarkdown from "./markdown"
|
||||||
|
export * as ConfigPaths from "./paths"
|
||||||
|
export * as TuiConfig from "./tui"
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import matter from "gray-matter"
|
|||||||
import { z } from "zod"
|
import { z } from "zod"
|
||||||
import { Filesystem } from "../util"
|
import { Filesystem } from "../util"
|
||||||
|
|
||||||
export namespace ConfigMarkdown {
|
|
||||||
export const FILE_REGEX = /(?<![\w`])@(\.?[^\s`,.]*(?:\.[^\s`,.]+)*)/g
|
export const FILE_REGEX = /(?<![\w`])@(\.?[^\s`,.]*(?:\.[^\s`,.]+)*)/g
|
||||||
export const SHELL_REGEX = /!`([^`]+)`/g
|
export const SHELL_REGEX = /!`([^`]+)`/g
|
||||||
|
|
||||||
@@ -96,4 +95,3 @@ export namespace ConfigMarkdown {
|
|||||||
message: z.string(),
|
message: z.string(),
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import { Filesystem } from "@/util"
|
|||||||
import { Flag } from "@/flag/flag"
|
import { Flag } from "@/flag/flag"
|
||||||
import { Global } from "@/global"
|
import { Global } from "@/global"
|
||||||
|
|
||||||
export namespace ConfigPaths {
|
|
||||||
export async function projectFiles(name: string, directory: string, worktree: string) {
|
export async function projectFiles(name: string, directory: string, worktree: string) {
|
||||||
return Filesystem.findUp([`${name}.json`, `${name}.jsonc`], directory, worktree, { rootFirst: true })
|
return Filesystem.findUp([`${name}.json`, `${name}.jsonc`], directory, worktree, { rootFirst: true })
|
||||||
}
|
}
|
||||||
@@ -164,4 +163,3 @@ export namespace ConfigPaths {
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import path from "path"
|
|||||||
import { type ParseError as JsoncParseError, applyEdits, modify, parse as parseJsonc } from "jsonc-parser"
|
import { type ParseError as JsoncParseError, applyEdits, modify, parse as parseJsonc } from "jsonc-parser"
|
||||||
import { unique } from "remeda"
|
import { unique } from "remeda"
|
||||||
import z from "zod"
|
import z from "zod"
|
||||||
import { ConfigPaths } from "./paths"
|
import { ConfigPaths } from "."
|
||||||
import { TuiInfo, TuiOptions } from "./tui-schema"
|
import { TuiInfo, TuiOptions } from "./tui-schema"
|
||||||
import { Instance } from "@/project/instance"
|
import { Instance } from "@/project/instance"
|
||||||
import { Flag } from "@/flag/flag"
|
import { Flag } from "@/flag/flag"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import z from "zod"
|
|||||||
import { mergeDeep, unique } from "remeda"
|
import { mergeDeep, unique } from "remeda"
|
||||||
import { Context, Effect, Fiber, Layer } from "effect"
|
import { Context, Effect, Fiber, Layer } from "effect"
|
||||||
import { Config } from "."
|
import { Config } from "."
|
||||||
import { ConfigPaths } from "./paths"
|
import { ConfigPaths } from "."
|
||||||
import { migrateTuiConfig } from "./tui-migrate"
|
import { migrateTuiConfig } from "./tui-migrate"
|
||||||
import { TuiInfo } from "./tui-schema"
|
import { TuiInfo } from "./tui-schema"
|
||||||
import { Flag } from "@/flag/flag"
|
import { Flag } from "@/flag/flag"
|
||||||
@@ -14,7 +14,6 @@ import { InstanceState } from "@/effect"
|
|||||||
import { makeRuntime } from "@/effect/run-service"
|
import { makeRuntime } from "@/effect/run-service"
|
||||||
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
||||||
|
|
||||||
export namespace TuiConfig {
|
|
||||||
const log = Log.create({ service: "tui.config" })
|
const log = Log.create({ service: "tui.config" })
|
||||||
|
|
||||||
export const Info = TuiInfo
|
export const Info = TuiInfo
|
||||||
@@ -211,4 +210,3 @@ export namespace TuiConfig {
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
printParseErrorCode,
|
printParseErrorCode,
|
||||||
} from "jsonc-parser"
|
} from "jsonc-parser"
|
||||||
|
|
||||||
import { ConfigPaths } from "@/config/paths"
|
import { ConfigPaths } from "@/config"
|
||||||
import { Global } from "@/global"
|
import { Global } from "@/global"
|
||||||
import { Filesystem } from "@/util"
|
import { Filesystem } from "@/util"
|
||||||
import { Flock } from "@opencode-ai/shared/util/flock"
|
import { Flock } from "@opencode-ai/shared/util/flock"
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import * as CrossSpawnSpawner from "@/effect/cross-spawn-spawner"
|
|||||||
import * as Stream from "effect/Stream"
|
import * as Stream from "effect/Stream"
|
||||||
import { Command } from "../command"
|
import { Command } from "../command"
|
||||||
import { pathToFileURL, fileURLToPath } from "url"
|
import { pathToFileURL, fileURLToPath } from "url"
|
||||||
import { ConfigMarkdown } from "../config/markdown"
|
import { ConfigMarkdown } from "../config"
|
||||||
import { SessionSummary } from "./summary"
|
import { SessionSummary } from "./summary"
|
||||||
import { NamedError } from "@opencode-ai/shared/util/error"
|
import { NamedError } from "@opencode-ai/shared/util/error"
|
||||||
import { SessionProcessor } from "./processor"
|
import { SessionProcessor } from "./processor"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import { Global } from "@/global"
|
|||||||
import { Permission } from "@/permission"
|
import { Permission } from "@/permission"
|
||||||
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
import { AppFileSystem } from "@opencode-ai/shared/filesystem"
|
||||||
import { Config } from "../config"
|
import { Config } from "../config"
|
||||||
import { ConfigMarkdown } from "../config/markdown"
|
import { ConfigMarkdown } from "../config"
|
||||||
import { Glob } from "@opencode-ai/shared/util/glob"
|
import { Glob } from "@opencode-ai/shared/util/glob"
|
||||||
import { Log } from "../util"
|
import { Log } from "../util"
|
||||||
import { Discovery } from "./discovery"
|
import { Discovery } from "./discovery"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
|
|
||||||
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
|
|
||||||
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
import { Npm } from "../../../src/npm"
|
import { Npm } from "../../../src/npm"
|
||||||
|
|
||||||
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
|
|
||||||
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { pathToFileURL } from "url"
|
|||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { Global } from "../../../src/global"
|
import { Global } from "../../../src/global"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
import { Filesystem } from "../../../src/util"
|
import { Filesystem } from "../../../src/util"
|
||||||
|
|
||||||
const { allThemes, addTheme } = await import("../../../src/cli/cmd/tui/context/theme")
|
const { allThemes, addTheme } = await import("../../../src/cli/cmd/tui/context/theme")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import path from "path"
|
|||||||
import { pathToFileURL } from "url"
|
import { pathToFileURL } from "url"
|
||||||
import { tmpdir } from "../../fixture/fixture"
|
import { tmpdir } from "../../fixture/fixture"
|
||||||
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
import { createTuiPluginApi } from "../../fixture/tui-plugin"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
|
|
||||||
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
const { TuiPluginRuntime } = await import("../../../src/cli/cmd/tui/plugin/runtime")
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { UI } from "../../../src/cli/ui"
|
|||||||
import * as Timeout from "../../../src/util/timeout"
|
import * as Timeout from "../../../src/util/timeout"
|
||||||
import * as Network from "../../../src/cli/network"
|
import * as Network from "../../../src/cli/network"
|
||||||
import * as Win32 from "../../../src/cli/cmd/tui/win32"
|
import * as Win32 from "../../../src/cli/cmd/tui/win32"
|
||||||
import { TuiConfig } from "../../../src/config/tui"
|
import { TuiConfig } from "../../../src/config"
|
||||||
import { Instance } from "../../../src/project/instance"
|
import { Instance } from "../../../src/project/instance"
|
||||||
|
|
||||||
const stop = new Error("stop")
|
const stop = new Error("stop")
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { expect, test, describe } from "bun:test"
|
import { expect, test, describe } from "bun:test"
|
||||||
import { ConfigMarkdown } from "../../src/config/markdown"
|
import { ConfigMarkdown } from "../../src/config"
|
||||||
|
|
||||||
describe("ConfigMarkdown: normal template", () => {
|
describe("ConfigMarkdown: normal template", () => {
|
||||||
const template = `This is a @valid/path/to/a/file and it should also match at
|
const template = `This is a @valid/path/to/a/file and it should also match at
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import fs from "fs/promises"
|
|||||||
import { tmpdir } from "../fixture/fixture"
|
import { tmpdir } from "../fixture/fixture"
|
||||||
import { Instance } from "../../src/project/instance"
|
import { Instance } from "../../src/project/instance"
|
||||||
import { Config } from "../../src/config"
|
import { Config } from "../../src/config"
|
||||||
import { TuiConfig } from "../../src/config/tui"
|
import { TuiConfig } from "../../src/config"
|
||||||
import { Global } from "../../src/global"
|
import { Global } from "../../src/global"
|
||||||
import { Filesystem } from "../../src/util"
|
import { Filesystem } from "../../src/util"
|
||||||
import { AppRuntime } from "../../src/effect/app-runtime"
|
import { AppRuntime } from "../../src/effect/app-runtime"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { spyOn } from "bun:test"
|
import { spyOn } from "bun:test"
|
||||||
import path from "path"
|
import path from "path"
|
||||||
import { TuiConfig } from "../../src/config/tui"
|
import { TuiConfig } from "../../src/config"
|
||||||
|
|
||||||
type PluginSpec = string | [string, Record<string, unknown>]
|
type PluginSpec = string | [string, Record<string, unknown>]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user