main.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { Template } from 'meteor/templating';
  2. import { ReactiveVar } from 'meteor/reactive-var';
  3. import get from 'lodash/get';
  4. import pick from 'lodash/pick';
  5. import "./main.html";
  6. import { Meteor } from "meteor/meteor";
  7. import {
  8. MeteorClientMethodSender,
  9. TrivialStrategy,
  10. ClientLogger,
  11. BrowserProcessor,
  12. MeteorUserProcessor,
  13. } from "filog";
  14. Template.hello.onCreated(function helloOnCreated() {
  15. // counter starts at 0
  16. this.counter = new ReactiveVar(0);
  17. });
  18. Template.hello.helpers({
  19. counter() {
  20. return Template.instance().counter.get();
  21. },
  22. });
  23. Template.hello.events({
  24. 'click button'(event, instance) {
  25. // increment the counter when button is clicked
  26. instance.counter.set(instance.counter.get() + 1);
  27. },
  28. });
  29. class ExtendedBrowserProcessor extends BrowserProcessor {
  30. constructor(browserInfo) {
  31. super();
  32. this.browserInfo = pick(browserInfo, ['description', 'name', 'version', 'layout', 'os']);
  33. }
  34. process(context) {
  35. const result = super.process(context);
  36. return {
  37. ...result,
  38. browser: {
  39. ...result.browser,
  40. ...this.browserInfo,
  41. },
  42. sockJSProtocol: get(Meteor.connection, '_stream.socket.protocol', 'unknown'),
  43. };
  44. }
  45. }
  46. Meteor.startup(() => {
  47. const sender = new MeteorClientMethodSender();
  48. const strategy = new TrivialStrategy(sender);
  49. let logger = new ClientLogger(strategy);
  50. logger.processors.push(
  51. new ExtendedBrowserProcessor({}),
  52. new BrowserProcessor(),
  53. new MeteorUserProcessor(),
  54. );
  55. window.logger = logger;
  56. });