@element-hq/element-web-module-api
API 表面,用于以安全和可预测的方式扩展 Element Web .
使用 API
模块由 Element Web 在运行时通过动态的外标导入来加载,但可以被捆绑到网络应用中以方便部署.
模块默认导出 MUST 是接受单个参数的类, 例如 ModuleApi。 。 。 .
此类还须有静态属性 moduleApiVersion 它是一个 semver 范围字符串
(单位:千美元) load 方法,在模块被装入时使用.
import type { Module, Api, ModuleFactory } from "@element-hq/element-web-module-api";
class ExampleModule implements Module {
public static readonly moduleApiVersion = "^2.0.0";
public constructor(private api: Api) {}
public async load(): Promise<void> {
// Your extension code goes here
}
}
export default ExampleModule satisfies ModuleFactory;
访问应用程序配置
这个 api 对象传递给模块构建器,提供对应用程序配置的访问.
您可以使用声明合并来扩展配置类型, 但请确保您不信任您指定的类型,
并由于配置的动态性质选择运行时间验证.
// ...
declare module "@element-hq/element-web-module-api" {
interface Config {
"this.is.my.config.key": string;
}
}
class ExampleModule implements Module {
// ...
public async load(): Promise<void> {
const configValue = this.api.config.get("this.is.my.config.key");
// Your extension code goes here
}
}
// ...
释放
API的版本使用semver,主要版本为断开更改而加码.
为了执行释放,见文件: ../RELEASING.md。 。 。 .
版权许可( L)
版权(c)2025新矢量有限公司
此软件由"新矢量"有限公司(Element)许可多种. 可用于:
(1) 根据GNU Affero通用公共许可证(由自由软件基金会出版,许可证第3版或(由你选择)以后的任何版本)的规定免费提供
(2) 根据贵方和贵方之间的有偿商业许可协议条款(其条款视贵方和贵方同意的内容而不同). 除非适用的法律要求或书面同意,否则根据许可证分发的软件在“AS IS”BASIS上分发,没有明示或默示的WARANTIES 或任何类型的软件。 见《许可证》中关于许可和限制的具体语言.