ui/holoclient.js
- это крошечная библиотека , которая значительно упрощает общение с работающим экземпляром приложения Holochain.Текущий способ подключения вашего GUI к экземпляру - это JSON-RPC-подобный процесс через локальное соединение WebSocket.Он предназначен как приятная оболочка, чтобы вызовы функций 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.Chrome и Firefox ищут и используют эти исходные карты при отладке JS.