Event.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import upperFirst from 'lodash/upperFirst';
  2. class Event {
  3. constructor({
  4. microtime,
  5. type,
  6. label,
  7. metadata = null,
  8. context = null,
  9. file = null,
  10. line_number = null,
  11. }) {
  12. this.microtime = microtime;
  13. this.type = type;
  14. this.label = label;
  15. this.metadata = metadata;
  16. this.context = context;
  17. this.file = file;
  18. this.line_number = line_number;
  19. }
  20. static forQuery({ microtime, sql, time, connection_name, bindings }) {
  21. return new Event({
  22. microtime,
  23. type: 'query',
  24. label: sql,
  25. metadata: {
  26. time,
  27. connection_name,
  28. },
  29. context: bindings,
  30. });
  31. }
  32. static forDump({ microtime, html_dump, file, line_number }) {
  33. return new Event({
  34. microtime,
  35. type: 'dump',
  36. label: html_dump,
  37. file,
  38. line_number,
  39. });
  40. }
  41. static forLog({ microtime, context, level, message }) {
  42. return new Event({
  43. microtime,
  44. type: 'log',
  45. label: message,
  46. context,
  47. metadata: { level },
  48. });
  49. }
  50. static forGlow({ microtime, message_level, meta_data, name, time }) {
  51. return new Event({
  52. microtime,
  53. type: 'glow',
  54. label: name,
  55. context: meta_data,
  56. metadata: { time, message_level },
  57. });
  58. }
  59. getComponentName() {
  60. return upperFirst(this.type) + 'Event';
  61. }
  62. }
  63. export default Event;