meteor__filog__demo/meteor/client/main.js

67 lines
1.6 KiB
JavaScript

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import get from 'lodash/get';
import pick from 'lodash/pick';
import "./main.html";
import { Meteor } from "meteor/meteor";
import {
MeteorClientMethodSender,
TrivialStrategy,
ClientLogger,
BrowserProcessor,
MeteorUserProcessor,
} from "filog";
Template.hello.onCreated(function helloOnCreated() {
// counter starts at 0
this.counter = new ReactiveVar(0);
});
Template.hello.helpers({
counter() {
return Template.instance().counter.get();
},
});
Template.hello.events({
'click button'(event, instance) {
// increment the counter when button is clicked
instance.counter.set(instance.counter.get() + 1);
},
});
class ExtendedBrowserProcessor extends BrowserProcessor {
constructor(browserInfo) {
console.log("EBP constructor");
super();
this.browserInfo = pick(browserInfo, ['description', 'name', 'version', 'layout', 'os']);
}
process(context) {
console.log("EBP process");
const result = super.process(context);
return {
...result,
browser: {
...result.browser,
...this.browserInfo,
},
sockJSProtocol: get(Meteor.connection, '_stream.socket.protocol', 'unknown'),
};
}
}
Meteor.startup(() => {
const sender = new MeteorClientMethodSender();
const strategy = new TrivialStrategy(sender);
let logger = new ClientLogger(strategy);
logger.processors.push(
new ExtendedBrowserProcessor({}),
new BrowserProcessor(),
new MeteorUserProcessor(),
);
window.logger = logger;
});