On this page
@std/toml
概览 Jump to heading
parse 和 stringify 用于处理
TOML 编码的数据。
请确保阅读支持的类型,因为并非所有规范目前都被支持,并且在 TypeScript 端的处理有些不同。
支持的类型和处理方式
- 键 (Keys)
- 字符串 (String)
- 多行字符串 (Multiline String)
- 字面量字符串 (Literal String)
- 整数 (Integer)
- 浮点数 (Float)
- 布尔值 (Boolean)
- 带偏移的日期时间 (Offset Date-time)
- 本地日期时间 (Local Date-time)
- 本地日期 (Local Date)
- 本地时间 (Local Time)
- 表格 (Table)
- 内联表格 (Inline Table)
- 表格数组 (Array of Tables)
带有警告的支持内容,请参见 警告 部分。
警告
字符串
由于规范限制,TOML 声明中无法正确检测正则表达式,因此正则会被存储为字符串。
整数
对于 二进制 / 八进制 / 十六进制 数字,它们会被存储为字符串,以免被解释为十进制数。
本地时间
因为 JavaScript 中不存在本地时间类型,所以本地时间被存储为字符串。
表格数组
目前只支持如下简单声明:
[[bin]];
name = "deno";
path = "cli/main.rs"[[bin]];
name = "deno_core";
path = "src/foo.rs"[[nib]];
name = "node";
path = "not_found";
将输出:
{
"bin": [
{ "name": "deno", "path": "cli/main.rs" },
{ "name": "deno_core", "path": "src/foo.rs" }
],
"nib": [{ "name": "node", "path": "not_found" }]
}
import { parse, stringify } from "@std/toml";
import { assertEquals } from "@std/assert";
const obj = {
bin: [
{ name: "deno", path: "cli/main.rs" },
{ name: "deno_core", path: "src/foo.rs" },
],
nib: [{ name: "node", path: "not_found" }],
};
const tomlString = stringify(obj);
assertEquals(
tomlString,
`
[[bin]]
name = "deno"
path = "cli/main.rs"
[[bin]]
name = "deno_core"
path = "src/foo.rs"
[[nib]]
name = "node"
path = "not_found"
`,
);
const tomlObject = parse(tomlString);
assertEquals(tomlObject, obj);
添加到你的项目中 Jump to heading
deno add jsr:@std/toml
什么是 TOML? Jump to heading
TOML(Tom's Obvious, Minimal Language)是一种配置文件格式,因其简单的语法而易于阅读。它支持多种数据类型,如字符串、数字、布尔值、日期、数组和表格,使其在配置中非常灵活。
为什么使用 @std/toml? Jump to heading
该模块提供了一种简单高效的方式,在 JavaScript 中解析和序列化 TOML 数据。可用于读取配置文件或以编程方式生成 TOML 内容。
小贴士 Jump to heading
- 注意支持的类型:某些 TOML 结构在 JS 中会以字符串形式表示。
- 对于重复的部分,使用表格数组;保持结构简单以便于理解和维护。