@lightningrodlabs/electron-holochain
TypeScript icon, indicating that this package has built-in type declarations

0.9.1 • Public • Published

electron-holochain

Built-in Holochain Version: v0.4.0-dev.5

Important: Expects an HAPP built with HDK ~v0.4.0-dev.5 and HDI ~v0.5.0-dev.5

An alternative Holochain conductor binary useful for quick startup and including handling of key generation and hApp installation. Useful for production and development environments.

manage holochain processes during an electron application runtime, using holochain-runner binary.

// function initAgent(
//   app: App,
//   opts: ElectronHolochainOptions,
//   pathOptions?: PathOptions
// ): Promise<{ statusEmitter: StatusUpdates, shutdown: () => Promise<void> }>

import {app} from 'electron'
import initAgent, {
  StateSignal,
  StatusUpdates,
  STATUS_EVENT,
  APP_PORT_EVENT,
  ERROR_EVENT,
  LOG_EVENT,
  ElectronHolochainOptions,
  PathOptions
} from 'electron-holochain'

const runnerOptions: ElectronHolochainOptions = {
  happPath: 'pathtomyhapp.happ',
  keystorePath: string
  passphrase: string
  // datastorePath?: 'string' default: databases
  // appId?: string
  // appWsPort?: number
  // adminWsPort?: number
  // webrtcSignalUrl?: string
  // bootstrapUrl?: string
  // networkSeed?: string
}

const { statusEmitter, shutdown } = await initAgent(app, runnerOptions)

// listen on the statusEmitter for status update
statusEmitter.on(STATUS_EVENT, (status: StateSignal) => {
  // do stuff
})

// listen on the statusEmitter for the websocket port used for app
statusEmitter.on(APP_PORT_EVENT, (appPort: string) => {
  // do stuff
}

// listen for normal log messages
statusEmitter.on(LOG_EVENT, (log: string) => {
  // do stuff
})

// listen for errors
statusEmitter.on(ERROR_EVENT, (error: Error) => {
  // do stuff
})
// when the app quits, holochain-runner and lair-keystore will shut down automatically

// you can also call the following, to shut them down
await shutdown()

Updating holochain-runner version and releasing

Go to ./src/downloadBinaries.ts and search for 'version-bump'. Change the value of const holochainRunnerTag = 'v0.7.9' to the version of holochain-runner you want to bundle. This will instructs clients to download that version of the holochain-runner binary from Github, during npm install.

To get this to trigger, run npm run try-binary-download.

Publishing

Bump the package.json version. Commit. Tag. Push. Run npm run build to build the typescript. Then run npm publish --access public to publish to npmjs.com.

Package Sidebar

Install

npm i @lightningrodlabs/electron-holochain

Weekly Downloads

1

Version

0.9.1

License

CAL-1.0

Unpacked Size

58.4 kB

Total Files

33

Last publish

Collaborators

  • weswalla
  • sprillow-connor
  • matthme
  • zippy314
  • guillem.cordoba