From 1f5ee24a0f900f2dd6f7eaeeef92645b833dfda0 Mon Sep 17 00:00:00 2001 From: hypercross Date: Sat, 28 Feb 2026 17:44:38 +0800 Subject: [PATCH] chore: clean up --- src/components/index.ts | 10 +- src/components/md-commander/hooks/index.ts | 2 +- .../md-commander/hooks/useCommander.ts | 3 +- .../md-commander/hooks/useDiceRoller.ts | 119 +++++++++--------- src/components/md-commander/index.ts | 13 -- src/components/md-commander/index.tsx | 2 +- 6 files changed, 60 insertions(+), 89 deletions(-) delete mode 100644 src/components/md-commander/index.ts diff --git a/src/components/index.ts b/src/components/index.ts index 33c03dc..c77bdfa 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -17,12 +17,4 @@ export { FileTreeNode, HeadingNode } from './FileTree'; // 导出数据类型 export type { DiceProps } from './md-dice'; export type { TableProps } from './md-table'; -export type { BgProps } from './md-bg'; -export type { - MdCommanderProps, - MdCommanderCommand, - MdCommanderOption, - MdCommanderOptionType, - CommanderEntry, - CompletionItem, -} from './md-commander'; +export type { BgProps } from './md-bg'; \ No newline at end of file diff --git a/src/components/md-commander/hooks/index.ts b/src/components/md-commander/hooks/index.ts index 0eb0b90..f39927a 100644 --- a/src/components/md-commander/hooks/index.ts +++ b/src/components/md-commander/hooks/index.ts @@ -1,4 +1,4 @@ export { useCommander, defaultCommands, parseInput, getCompletions, getResultClass } from './useCommander'; export type { UseCommanderReturn } from './useCommander'; -export { useDiceRoller } from './useDiceRoller'; +export { rollFormula, rollSimple } from './useDiceRoller'; export * from './dice-engine'; diff --git a/src/components/md-commander/hooks/useCommander.ts b/src/components/md-commander/hooks/useCommander.ts index 4528783..5fdd5d0 100644 --- a/src/components/md-commander/hooks/useCommander.ts +++ b/src/components/md-commander/hooks/useCommander.ts @@ -4,7 +4,7 @@ import { CommanderEntry, CompletionItem, } from "../types"; -import { useDiceRoller } from "./useDiceRoller"; +import { rollSimple } from "./useDiceRoller"; // ==================== 默认命令 ==================== @@ -57,7 +57,6 @@ export const defaultCommands: Record = { ], handler: (args) => { const formula = args.params.formula || "1d6"; - const { rollSimple } = useDiceRoller(); const result = rollSimple(formula); return { message: result.text, diff --git a/src/components/md-commander/hooks/useDiceRoller.ts b/src/components/md-commander/hooks/useDiceRoller.ts index fd7110c..c20aad0 100644 --- a/src/components/md-commander/hooks/useDiceRoller.ts +++ b/src/components/md-commander/hooks/useDiceRoller.ts @@ -19,69 +19,62 @@ export interface DiceRollerResult { * 骰子引擎 Hook * 提供高级骰子功能:骰池、修饰符、组合等 */ -export function useDiceRoller() { - /** - * 执行掷骰 - * @param formula 骰子公式,支持: - * - 3d6: 标准骰子 - * - {d4, d8, 2d6}: 骰池字面量 - * - kh2/dl1: 修饰符 - * - +: 组合骰池 - * - -: 负数组合 - * - 5: 固定数字 - */ - function roll(formula: string): DiceRollerResult { - try { - const result = rollDice(formula); +/** + * 执行掷骰 + * @param formula 骰子公式,支持: + * - 3d6: 标准骰子 + * - {d4, d8, 2d6}: 骰池字面量 + * - kh2/dl1: 修饰符 + * - +: 组合骰池 + * - -: 负数组合 + * - 5: 固定数字 + */ +export function rollFormula(formula: string): DiceRollerResult { + try { + const result = rollDice(formula); - return { - formula, - result: { - total: result.total, - detail: result.detail, - pools: result.pools.map((pool) => ({ - rolls: pool.rolls.map((r) => r.value), - keptRolls: pool.keptRolls.map((r) => r.value), - subtotal: pool.subtotal, - })), - }, - success: true, - }; - } catch (e) { - return { - formula, - result: { - total: 0, - detail: "", - pools: [], - }, - success: false, - error: e instanceof Error ? e.message : String(e), - }; - } + return { + formula, + result: { + total: result.total, + detail: result.detail, + pools: result.pools.map((pool) => ({ + rolls: pool.rolls.map((r) => r.value), + keptRolls: pool.keptRolls.map((r) => r.value), + subtotal: pool.subtotal, + })), + }, + success: true, + }; + } catch (e) { + return { + formula, + result: { + total: 0, + detail: "", + pools: [], + }, + success: false, + error: e instanceof Error ? e.message : String(e), + }; + } +} + +/** + * 简化版掷骰,返回 HTML 格式结果 + * 格式:[1] [2] [3] = 6 + */ +export function rollSimple(formula: string): { text: string; isHtml?: boolean } { + try { + const result = rollDice(formula); + return { + text: result.detail, + isHtml: true, // detail 包含 HTML + }; + } catch (e) { + return { + text: `错误:${e instanceof Error ? e.message : String(e)}`, + isHtml: false, + }; } - - /** - * 简化版掷骰,返回 HTML 格式结果 - * 格式:[1] [2] [3] = 6 - */ - function rollSimple(formula: string): { text: string; isHtml?: boolean } { - try { - const result = rollDice(formula); - return { - text: result.detail, - isHtml: true, // detail 包含 HTML - }; - } catch (e) { - return { - text: `错误:${e instanceof Error ? e.message : String(e)}`, - isHtml: false, - }; - } - } - - return { - roll, - rollSimple, - }; } diff --git a/src/components/md-commander/index.ts b/src/components/md-commander/index.ts deleted file mode 100644 index fab9f89..0000000 --- a/src/components/md-commander/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -export { CommanderInput } from './CommanderInput'; -export type { CommanderInputProps } from './CommanderInput'; -export { CommanderEntries } from './CommanderEntries'; -export type { CommanderEntriesProps } from './CommanderEntries'; -export type { - MdCommanderProps, - MdCommanderCommand, - MdCommanderOption, - MdCommanderParameter, - MdCommanderOptionType, - CommanderEntry, - CompletionItem, -} from './types'; diff --git a/src/components/md-commander/index.tsx b/src/components/md-commander/index.tsx index c69b45c..6b8b780 100644 --- a/src/components/md-commander/index.tsx +++ b/src/components/md-commander/index.tsx @@ -1,6 +1,6 @@ import { customElement, noShadowDOM } from "solid-element"; import { onMount, onCleanup } from "solid-js"; -import { useCommander } from "./hooks/useCommander"; +import { useCommander } from "./hooks"; import { CommanderInput } from "./CommanderInput"; import { CommanderEntries } from "./CommanderEntries"; import type { MdCommanderProps } from "./types";