markerParser.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. const markerParser = (
  2. function () {
  3. function parsePayloadLines(payload) {
  4. var lines = payload.split('\r\n');
  5. var keys = {};
  6. var line;
  7. var keysCount = 0;
  8. for (var i = 0; i < lines.length; i += 1) {
  9. line = lines[i].split(':');
  10. if (line.length === 2) {
  11. keys[line[0]] = line[1].trim();
  12. keysCount += 1;
  13. }
  14. }
  15. if (keysCount === 0) {
  16. throw new Error();
  17. }
  18. return keys;
  19. }
  20. return function (_markers) {
  21. var markers = [];
  22. for (var i = 0; i < _markers.length; i += 1) {
  23. var _marker = _markers[i];
  24. var markerData = {
  25. time: _marker.tm,
  26. duration: _marker.dr,
  27. };
  28. try {
  29. markerData.payload = JSON.parse(_markers[i].cm);
  30. } catch (_) {
  31. try {
  32. markerData.payload = parsePayloadLines(_markers[i].cm);
  33. } catch (__) {
  34. markerData.payload = {
  35. name: _markers[i].cm,
  36. };
  37. }
  38. }
  39. markers.push(markerData);
  40. }
  41. return markers;
  42. };
  43. }());
  44. export default markerParser;