ZhijiangTang/dsh-fmt
ZhijiangTang★ 0JavaScript最后同步: 2026-08-15
DSH plugin: JSON/YAML/TOML/SQL formatter with error line/column locations
README 摘要
dsh-fmt DSH 插件:格式化 / 校验文本,支持 JSON / YAML / TOML / SQL 四种格式。纯 ESM、无构建、无原生依赖。 安装 (发布到 npm 后: dsh plugin --profile add dsh-fmt ) 工具 - format text —— 输入文本与目标格式,返回规范值 { format, ok, output, error? } 。 参数 参数 类型 必填 默认 说明 text string 是 - 要格式化 / 校验的文本 format enum 是 - json / yaml / toml / sql indent number 否 2 缩进宽度(JSON/YAML 美化;SQL 的 tab 宽度) sqlDialect enum 否 standard standard / postgresql / mysql / sqlite ,仅 SQL 使用 keywordCase enum 否 upper upper / lower / preserve ,仅 SQL 使用 返回值 规范 JSON 值: 解析失败不算工具失败 :错误以 ok:false + error (尽力带 line / column 位置)返回,而不是抛出工具异常。 各格式示例 JSON 输入 {"b":1,"a":[1,2]} , format=json , indent=2 : 非法输入 {bad 返回 ok:false , error.message 含 Node 报错原文, line / column 从报错中的 position … (line L column C) 正则提取。 YAML 输入: format=yaml 先 parse 校验,再 stringify 美化(流式数组会展开为块式)。解析失败捕获 YAMLParseError ,取 linePos[0] 作为位置。 TOML 输入: format=toml 先 parse 校验再 stringify 规范化;解析失败取 TomlError 的 line / column 。 SQL 输入 select a,b from t where x=1 order by b , format=sql 、 keywordCase=upper : sqlDialect 映射到 sql-formatter 的 language : standard→sql 、 postgresql→postgresql 、 mysql→mysql 、 sqlite→sqlite 。 SQL 不做语法校验的说明 format text 的 SQL 分支本身 不做主动语法校验 :不先解析再格式化,直接把文本交给 sql-formatter 的 format() ,多数可读 SQL 都能得到规范化输出…
在 GitHub 查看完整 README →