IDE 工具函数
概述
utils.ts 提供了 IDE 组件使用的工具函数,主要用于对象到 YAML 格式的转换。
文件路径
src/components/ide/utils.ts
函数
toYaml
将 JavaScript 对象转换为 YAML 格式的字符串。
export function toYaml(obj: unknown, indent = 0): string
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
obj | unknown | - | 要转换的对象 |
indent | number | 0 | 缩进级别 |
返回值
string - YAML 格式的字符串
支持类型
null/undefined→"null"string→ 原样输出或多行文本(含特殊字符时加引号)number/boolean→ 字符串形式Array→ YAML 数组格式Object→ YAML 对象格式
使用示例
import { toYaml } from "./utils";
// 简单对象
const obj = {
name: "example",
count: 42,
active: true
};
console.log(toYaml(obj));
// 输出:
// name: example
// count: 42
// active: true
// 嵌套对象
const nested = {
person: {
name: "John",
age: 30
},
hobbies: ["reading", "coding"]
};
console.log(toYaml(nested));
// 输出:
// person:
// name: John
// age: 30
// hobbies:
// - reading
// - coding
// 多行字符串
const multiline = {
description: "Line 1\nLine 2\nLine 3"
};
console.log(toYaml(multiline));
// 输出:
// description: |
// Line 1
// Line 2
// Line 3
特性
- 递归处理: 支持任意深度的嵌套对象
- 缩进管理: 自动处理正确的 YAML 缩进
- 特殊字符处理: 包含
:或#的字符串会自动加引号 - 多行支持: 含换行符的字符串使用
|语法 - 空值处理:
null和undefined统一输出为"null"
注意事项
- 这是一个简化版的 YAML 序列化器,不支持所有 YAML 特性
- 循环引用会导致栈溢出
- 仅用于 IDE 内部的简单数据展示
- 对于复杂的 YAML 需求,建议使用专业库如
js-yaml