0

https://github.com/holochain/holochat-rustui/holoclient.js中,文件是如何ui/holoclient.map获得的?

另外,有没有关于我错过的官方文档,这仍然是让 UI 与 holochain 容器对话的方法吗?

4

1 回答 1

1

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 都会查找并使用这些源映射。

于 2019-01-22T20:43:40.880 回答