@collective-intelligence/extensions-sdk-frontend
前端框架中立声明、目录和激活合同 扩展包。 软件包没有反应或主机应用程序依赖性,所以 第三方扩展可以发布声明,而不取决于私人 平台软件包.
import {
admitFrontendCatalog,
createFrontendCatalog,
declareFrontendCatalogContribution,
declareFrontendComponent,
declareFrontendPackage
} from "@collective-intelligence/extensions-sdk-frontend"
const field = declareFrontendComponent({
target: {
fqn: "com.acme.crm.fields.customer",
packageFqn: "com.acme.crm",
role: "render",
version: "1.0.0"
},
implementation: {
render: {
exportName: "CustomerField",
load: () => import("./customer-field"),
module: "./customer-field"
}
}
})
const packageDeclaration = declareFrontendPackage({
manifest: {
fqn: "com.acme.crm",
name: "Acme CRM",
version: "1.0.0"
},
components: [field]
})
const catalog = createFrontendCatalog()
catalog.activate([packageDeclaration])
export const studioCatalog = declareFrontendCatalogContribution({
fqn: "com.acme.crm.studio.catalog",
host: "studio",
load: () => import("./studio-catalog")
})
const admitted = await admitFrontendCatalog({
authority: {
logical: {
...studioCatalog.manifest,
contributionFqn: studioCatalog.manifest.fqn,
packageFqn: "com.acme.crm",
packageVersion: "1.0.0",
servingGeneration: 1
},
physical: {
...studioCatalog.manifest,
assetDigest: "a".repeat(64),
carrierPackageFqn: "com.acme.crm",
contributionFqn: studioCatalog.manifest.fqn,
extensionReleaseDigest: "b".repeat(64)
}
},
loadedModule: await studioCatalog.load()
})
使用可选 load 调回,使发件人的进口对捆绑者可见.
支持此调用的主机将模块命名为空闲空间加载, 然后选择
exportName· ; module 诊断和进口回落
没有提供回调 。 宣言和目录激活
调用。 回调、模块定位器和导出名称为运行时侧车:
犬科前端的特征和组件身份排除了它们.
根入口为公入口地表. 内部,
declarations/ 拥有不可改变的作者值, catalog/ 拥有精确的绑定
审定和解决,以及 admitFrontendCatalog 拥有动态加载器和
授权-结果录取.
这个 /effect 条目点为空 : 此软件包没有 I/O 客户端, 没有
预期出错, 因此它没有效果服务 。 它的装载器来自宿主.
effect (单位:千美元)^4.1.0)是需要的对等依赖:应用程序安装一个副本
联 合 国 effect,而软件包构建则保持外部.
每个 Dashboard 或 Studio 发布贡献用途
frontend-catalog/v1 和固定的 loadFrontendCatalog 输出。 入学
核对逻辑和物理来源、可调用和合成加载器行为,
软件包/组件所有权,以及在返回
不可改变的声明设定。 收录每个组件 load 回调和
拒绝其 load 不可调用; 捆绑的主机无法导入
由 module,因为它的块输出 精密的名称。 本合同
不允许导航、根页或外壳贡献.
声明包含精确的软件包,FQN,版本,和角色身份. 模块
参考文献为运行时的侧车并被排除在犬科声明之外
连载化。 一个组件的目标版本确定了自己的合同,并可能
与包含的包放出版本不同. JSON和包装
身份来源于
@collective-intelligence/extensions-sdk; 反应加载、渲染和主机
诊断人员居住在
@collective-intelligence/extensions-sdk-frontend-react/frontend。 。 。 .