Prepare electron releases

This commit is contained in:
Thomas Nordquist
2019-01-01 23:48:35 +01:00
parent b2badfd43f
commit 5697b2daea
19 changed files with 10823 additions and 880 deletions

View File

@@ -1,10 +1,10 @@
import { DataSourceState } from './'
import { DataSourceStateMachine } from './'
type MessageCallback = (topic: string, payload: Buffer) => void
// A DataSource should automatically reconnect if connection was broken
interface DataSource<DataSourceOptions> {
connect(options: DataSourceOptions): DataSourceState
connect(options: DataSourceOptions): DataSourceStateMachine
disconnect(): void
onMessage(messageCallback: MessageCallback): void
topicSeparator: string

View File

@@ -1,11 +1,13 @@
interface InternalState {
import { EventEmitter } from 'events'
export interface DataSourceState {
connecting: boolean
connected: boolean
error?: Error
}
export class DataSourceState {
private state: InternalState = {
export class DataSourceStateMachine extends EventEmitter {
private state: DataSourceState = {
error: undefined,
connected: false,
connecting: false

View File

@@ -1,5 +1,5 @@
import { Client, connect as mqttConnect } from 'mqtt'
import { DataSource, DataSourceState } from './'
import { DataSource, DataSourceStateMachine } from './'
export interface MqttOptions {
url: string
@@ -15,8 +15,8 @@ export class MqttSource implements DataSource<MqttOptions> {
this.messageCallback = messageCallback
}
public connect(options: MqttOptions): DataSourceState {
const state = new DataSourceState()
public connect(options: MqttOptions): DataSourceStateMachine {
const state = new DataSourceStateMachine()
const client = mqttConnect(options.url, {
resubscribe: false

View File

@@ -1,10 +1,11 @@
import { DataSource } from './DataSource'
import { DataSourceState } from './DataSourceState'
import { DataSourceState, DataSourceStateMachine } from './DataSourceState'
import { MqttOptions, MqttSource } from './MqttSource'
export {
DataSource,
DataSourceState,
DataSourceStateMachine,
MqttOptions,
MqttSource,
}