在https://github.com/holochain/holochat-rustui/holoclient.js
中,文件是如何ui/holoclient.map
获得的?
另外,有没有关于我错过的官方文档,这仍然是让 UI 与 holochain 容器对话的方法吗?
在https://github.com/holochain/holochat-rustui/holoclient.js
中,文件是如何ui/holoclient.map
获得的?
另外,有没有关于我错过的官方文档,这仍然是让 UI 与 holochain 容器对话的方法吗?
ui/holoclient.js
是一个小型库,可以更轻松地与正在运行的 Holochain 应用程序实例通信。当前将 GUI 连接到实例的方式是通过本地 WebSocket 连接的类似 JSON-RPC 的过程。它旨在作为一个很好的包装器,使 zome 函数调用感觉像本地的浏览器内函数调用。文档目前非常简单,但使用示例应该不需要太多时间来弄清楚它应该如何工作。简而言之:
const url = 'ws://localhost:3000/'
window.holoclient.connect(url).then(({call, close}) => {
document.getElementById('form').addEventListener('submit', e => {
e.preventDefault()
// First, get a list of locally running Holochain instances...
call('info/instances')().then(info => {
// Now that we have instance info, we can make zome calls into any of them
// by referring to them by DNA hash (and agent ID) as specified in our
// container config.
// Search for the instance we're looking for, given known DNA and agent
// hashes.
const matchingInstances = Object.entries(info)
.find(([id, value]) => value.dna === 'blog_dna_hash' && value.agent === 'my_agent_hash')
const instance = getInstance(info, 'the_dna_hash', 'the_agent_hash')
const content = document.querySelector('#message').value
// Make another zome call now
call(instance, 'blog', 'main', 'create_post')({
content: content
})
})
})
})
它是用 TypeScript 编写的,这意味着它ui/holoclient.map
是一个“源映射”,一个将编译后的 JavaScript 文件中的行号映射到原始 TypeScript 源中的行号的文件。在调试 JS 时,Chrome 和 Firefox 都会查找并使用这些源映射。