@dodona/papyros 2.1.0-beta.3 → 2.1.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,9 @@ export declare class TraceViewer extends Renderable<RenderOptions> {
10
10
  private currentOutputs;
11
11
  private currentInputs;
12
12
  private traceComponent;
13
+ private traceBuffer;
13
14
  constructor();
14
15
  protected _render(options: RenderOptions): void;
15
16
  reset(): void;
17
+ clearBuffer(): void;
16
18
  }
@@ -4,12 +4,21 @@ import { BackendManager } from "./BackendManager";
4
4
  import { BackendEventType } from "./BackendEvent";
5
5
  import "@dodona/trace-component";
6
6
  const TRACE_COMPONENT_ID = "trace-component";
7
+ function createDelayer() {
8
+ let timer;
9
+ return (callback, ms) => {
10
+ clearTimeout(timer);
11
+ timer = setTimeout(callback, ms);
12
+ };
13
+ }
14
+ const delay = createDelayer();
7
15
  export class TraceViewer extends Renderable {
8
16
  constructor() {
9
17
  super();
10
18
  this.frameStates = [];
11
19
  this.currentOutputs = 0;
12
20
  this.currentInputs = 0;
21
+ this.traceBuffer = [];
13
22
  this.reset();
14
23
  BackendManager.subscribe(BackendEventType.Start, () => {
15
24
  this.reset();
@@ -29,7 +38,6 @@ export class TraceViewer extends Renderable {
29
38
  this.currentInputs++;
30
39
  });
31
40
  BackendManager.subscribe(BackendEventType.Frame, e => {
32
- var _a;
33
41
  const frame = JSON.parse(e.data);
34
42
  const frameState = {
35
43
  line: frame.line,
@@ -37,7 +45,13 @@ export class TraceViewer extends Renderable {
37
45
  inputs: this.currentInputs
38
46
  };
39
47
  this.frameStates.push(frameState);
40
- (_a = this.traceComponent) === null || _a === void 0 ? void 0 : _a.addFrame(frame);
48
+ this.traceBuffer.push(frame);
49
+ if (this.traceBuffer.length > 100) {
50
+ this.clearBuffer();
51
+ }
52
+ else {
53
+ delay(() => this.clearBuffer(), 100);
54
+ }
41
55
  BackendManager.publish({
42
56
  type: BackendEventType.FrameChange,
43
57
  data: frameState
@@ -65,5 +79,12 @@ export class TraceViewer extends Renderable {
65
79
  this.traceComponent.trace = [];
66
80
  }
67
81
  }
82
+ clearBuffer() {
83
+ var _a;
84
+ for (const frame of this.traceBuffer) {
85
+ (_a = this.traceComponent) === null || _a === void 0 ? void 0 : _a.addFrame(frame);
86
+ }
87
+ this.traceBuffer = [];
88
+ }
68
89
  }
69
90
  //# sourceMappingURL=TraceViewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TraceViewer.js","sourceRoot":"","sources":["../src/TraceViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TraceViewer.js","sourceRoot":"","sources":["../src/TraceViewer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodona/papyros",
3
- "version": "2.1.0-beta.3",
3
+ "version": "2.1.0-beta.6",
4
4
  "private": false,
5
5
  "homepage": ".",
6
6
  "devDependencies": {
@@ -45,7 +45,7 @@
45
45
  "@codemirror/state": "^6.3.2",
46
46
  "@codemirror/theme-one-dark": "^6.1.2",
47
47
  "@codemirror/view": "^6.22.1",
48
- "@dodona/trace-component": "1.1.5-beta.1",
48
+ "@dodona/trace-component": "1.1.5-beta.3",
49
49
  "@lezer/common": "^1.1.0",
50
50
  "comlink": "^4.4.1",
51
51
  "comsync": "^0.0.9",