Runtime API / Function

defineFlamoArtifact

规范化结构化输入,得到可由 Runtime 挂载的 Flamo Artifact。

使用说明

它是手写、导入或代码生成 Artifact 的入口。输入应只包含可持久化事实,不要写入 DOM、ECS Entity 或某次运行产生的对象引用。

导入 Artifact

Artifact 可以来自 JSON 文件、网络接口或 ES Module。导入后先经过 defineFlamoArtifact(),可统一补齐 schema、metadata、exports 等规范字段:

import artifactJson from './card.flamo.json' with { type: 'json' };
import { defineFlamoArtifact } from '@flamo/runtime';
export const cardArtifact = defineFlamoArtifact(artifactJson);

从网络读取时同样处理:

const source = await fetch('/artifacts/card.flamo.json').then(response => response.json());
const cardArtifact = defineFlamoArtifact(source);

导出 Artifact

Artifact 是普通的可序列化数据,可以保存成 JSON,也可以作为 JavaScript 值导出:

const json = JSON.stringify(cardArtifact, null, 2);
export default cardArtifact;

导出的 Artifact 仍只是定义。要运行它,需要调用 runtime.create({ artifact: cardArtifact }) 或 runtime.mount(target, cardArtifact)。

参数

inputFlamoArtifactLike
optionsDefineFlamoArtifactOptions