@ canonical/ token 类型
用于Canonical设计符号工具的共享类型Script类型. 这个包定义了Terrazzo CSS插件(生产者)和LSP(消费者)之间的JSON合同—— tokens.json 工艺品格式.
安装
bun add -d @canonical/token-types
使用量
导入工作类型 tokens.json 文物:
import type { Artifact, ArtifactToken, ArtifactEnvelope } from "@canonical/token-types";
function loadTokens(json: ArtifactEnvelope): Artifact {
if ("tokens" in json) return json.tokens; // wrapped envelope
return json; // flat artifact
}
使用运行时守护以缩小 DTCG 类型字符串 :
import { isKnownDtcgTokenType } from "@canonical/token-types";
if (isKnownDtcgTokenType(token.type)) {
// token.type is narrowed to KnownDtcgTokenType
}
出口
类型
| 类型 | 说明 |
|---|---|
Artifact | 完整的文物:CSS可变名称为符元数据. |
ArtifactToken | 将元数据、解析值、源位置、推导和登记字段合并在一起的单一符号条目. |
ArtifactTokenInit | 建造由DTCG来源的文物代币的输入合同. |
DerivedArtifactTokenInit | 构建一个衍生或插件生成的符号的输入合同 . |
ArtifactEnvelope | 联邦制 Artifact 财务报告和审定财务报表 WrappedArtifactEnvelope ——插件也可能发出. |
WrappedArtifactEnvelope | 人工载荷 version, (中文(简体) ), generator,以及 tokens 字段. |
ArtifactDeclaration | 一个声明站点(选择器、文件、行、附加规则). |
ArtifactAtRule | 规则上下文(名称+前奏). |
DtcgTokenType | 技术合作组 $type 值 —— 已知的有字符串逃生舱门的文字,用于前向相容. |
KnownDtcgTokenType | 已知的 DTCG 类型文字 (color, (中文(简体) ), dimension, (中文(简体) ), number(见a/c.5/49/70,附件). |
TokenTier | 等级分类: "primitive", (中文(简体) ), "semantic",或 "derived"。 。 。 . |
ArtifactTier | 由文物所携带的分级字符串——已知分级外加一串出逃舱. |
DerivationKind | 衍生公式类型( :"hover", (中文(简体) ), "active", (中文(简体) ), "disabled", (中文(简体) ), "delta"(见a/c.5/49/70,附件). |
运行时间
| 导出 | 说明 |
|---|---|
KNOWN_DTCG_TOKEN_TYPES | const 数组所有识别的 DTCG 类型文字. |
isKnownDtcgTokenType(value) | 将字符串缩小到 KnownDtcgTokenType。 。 。 . |
发展
bun run build # Compile (tsc)
bun run test # Run type-level tests
bun run check # Type check