More good changes

This commit is contained in:
Alex Mikhalev 2017-09-27 19:20:50 -06:00
parent c198b2d75e
commit ddc834d2f3
8 changed files with 28 additions and 22 deletions

View File

@ -4,6 +4,9 @@ import { AppContainer } from "react-hot-loader";
import App from "@app/components/App";
import { ProvideState, State } from "@app/state";
import log, { setLogger } from "@common/log";
setLogger(log.child({ name: "sprinklers3/app" }));
const state = new State();
state.start();

View File

@ -11,7 +11,7 @@ export interface IState {
}
export class State implements IState {
sprinklersApi: ISprinklersApi = new MqttApiClient();
sprinklersApi: ISprinklersApi = new MqttApiClient(`ws://${location.hostname}:1884`);
uiStore = new UiStore();
constructor() {

9
common/logger.ts Normal file
View File

@ -0,0 +1,9 @@
import * as pino from "pino";
let logger: pino.Logger = pino();
export function setLogger(newLogger: pino.Logger) {
logger = newLogger;
}
export default logger;

View File

@ -11,16 +11,17 @@ import {
SectionRunner,
SprinklersDevice,
TimeOfDay,
} from "@common/sprinklers";
import { checkedIndexOf } from "@common/utils";
} from "./sprinklers";
import { checkedIndexOf } from "./utils";
export class MqttApiClient implements ISprinklersApi {
readonly mqttUri: string;
client: mqtt.Client;
connected: boolean;
devices: { [prefix: string]: MqttSprinklersDevice } = {};
constructor() {
// (this.client as any).trace = (m => console.log(m));
constructor(mqttUri: string) {
this.mqttUri = mqttUri;
}
private static newClientId() {
@ -30,7 +31,7 @@ export class MqttApiClient implements ISprinklersApi {
start() {
const clientId = MqttApiClient.newClientId();
console.log("connecting to mqtt with client id %s", clientId);
this.client = mqtt.connect(`ws://${location.hostname}:1884`, {
this.client = mqtt.connect(this.mqttUri, {
clientId,
});
this.client.on("message", this.onMessageArrived.bind(this));

View File

@ -3,7 +3,7 @@ import * as webpack from "webpack";
import * as webpackMiddleware from "webpack-dev-middleware";
import * as webpackHotMiddleware from "webpack-hot-middleware";
import logger from "../log";
import logger from "../../common/logger";
const log = logger.child({ source: "webpack" });
/* tslint:disable-next-line:no-var-requires */

View File

@ -1,16 +1,14 @@
import { Server } from "http";
import log, { setLogger } from "../common/logger";
import app from "./app";
import log from "./log";
import * as mqtt from "mqtt";
setLogger(log.child({ name: "sprinklers3/server" }));
const mqttClient = mqtt.connect("mqtt://localhost:1882");
mqttClient.on("connect", () => {
log.info("mqtt connected");
});
mqttClient.on("error", (err) => {
log.error("mqtt error: ", err);
});
import * as mqtt from "../common/mqtt";
const mqttClient = new mqtt.MqttApiClient("mqtt://localhost:1882");
mqttClient.start();
const server = new Server(app);

View File

@ -1,5 +0,0 @@
import * as pino from "pino";
const log = pino();
export default log;

View File

@ -6,7 +6,7 @@
"jsRules": {},
"rules": {
"no-console": [
false
true
],
"max-classes-per-file": [
false