UNPKG

skypager-project-types-electron-app

Version:

skypager electron app project type

53 lines (41 loc) 1.19 kB
import Helper from 'skypager-helper' import DataStore from './data-store' import Presenter from './presenter' import { Runtime } from 'skypager-runtime' export class ProjectRuntime extends Runtime { static optionTypes = { entryPoint: 'string' } static contextTypes = { responder: 'object', positioner: 'object', storage: 'object', ipc: 'object', ipcRenderer: 'object' } async connect() { return Promise.resolve(this) } setupEventBindings() { this.responder.registerTopic('PANEL', (payload) => this.receiveMessage({payload, channel: 'PANEL'})) this.responder.registerTopic('RUNTIME', (payload) => this.receiveMessage({payload, channel: 'RUNTIME'})) } async receiveMessage({payload, channel}) { return this } get storage() { this.tryGet('storage', window.storage) } get positioner() { this.tryGet('positioner', window.positioner) } get responder() { this.tryGet('responder', window.responder) } get ipc() { this.tryGet('ipc', window.ipcRenderer) } } export default ProjectRuntime Helper.registry.register('data-store', () => DataStore) Helper.registry.register('presenter', () => Presenter)