@fluidframework/container-runtime 2.11.0 → 2.12.0

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.
Files changed (68) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/api-report/container-runtime.legacy.alpha.api.md +17 -15
  3. package/container-runtime.test-files.tar +0 -0
  4. package/dist/containerRuntime.d.ts +38 -5
  5. package/dist/containerRuntime.d.ts.map +1 -1
  6. package/dist/containerRuntime.js +28 -7
  7. package/dist/containerRuntime.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js.map +1 -1
  11. package/dist/packageVersion.d.ts +1 -1
  12. package/dist/packageVersion.js +1 -1
  13. package/dist/packageVersion.js.map +1 -1
  14. package/dist/summary/runWhileConnectedCoordinator.d.ts +2 -1
  15. package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  16. package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
  17. package/dist/summary/runningSummarizer.d.ts +8 -1
  18. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  19. package/dist/summary/runningSummarizer.js +70 -8
  20. package/dist/summary/runningSummarizer.js.map +1 -1
  21. package/dist/summary/summarizer.d.ts +5 -2
  22. package/dist/summary/summarizer.d.ts.map +1 -1
  23. package/dist/summary/summarizer.js +39 -6
  24. package/dist/summary/summarizer.js.map +1 -1
  25. package/dist/summary/summarizerTypes.d.ts +8 -4
  26. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  27. package/dist/summary/summarizerTypes.js.map +1 -1
  28. package/dist/summary/summaryManager.d.ts +5 -2
  29. package/dist/summary/summaryManager.d.ts.map +1 -1
  30. package/dist/summary/summaryManager.js +23 -6
  31. package/dist/summary/summaryManager.js.map +1 -1
  32. package/lib/containerRuntime.d.ts +38 -5
  33. package/lib/containerRuntime.d.ts.map +1 -1
  34. package/lib/containerRuntime.js +28 -7
  35. package/lib/containerRuntime.js.map +1 -1
  36. package/lib/index.d.ts +1 -1
  37. package/lib/index.d.ts.map +1 -1
  38. package/lib/index.js.map +1 -1
  39. package/lib/packageVersion.d.ts +1 -1
  40. package/lib/packageVersion.js +1 -1
  41. package/lib/packageVersion.js.map +1 -1
  42. package/lib/summary/runWhileConnectedCoordinator.d.ts +2 -1
  43. package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
  44. package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
  45. package/lib/summary/runningSummarizer.d.ts +8 -1
  46. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  47. package/lib/summary/runningSummarizer.js +70 -8
  48. package/lib/summary/runningSummarizer.js.map +1 -1
  49. package/lib/summary/summarizer.d.ts +5 -2
  50. package/lib/summary/summarizer.d.ts.map +1 -1
  51. package/lib/summary/summarizer.js +39 -6
  52. package/lib/summary/summarizer.js.map +1 -1
  53. package/lib/summary/summarizerTypes.d.ts +8 -4
  54. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  55. package/lib/summary/summarizerTypes.js.map +1 -1
  56. package/lib/summary/summaryManager.d.ts +5 -2
  57. package/lib/summary/summaryManager.d.ts.map +1 -1
  58. package/lib/summary/summaryManager.js +23 -6
  59. package/lib/summary/summaryManager.js.map +1 -1
  60. package/package.json +19 -19
  61. package/src/containerRuntime.ts +82 -23
  62. package/src/index.ts +1 -0
  63. package/src/packageVersion.ts +1 -1
  64. package/src/summary/runWhileConnectedCoordinator.ts +2 -5
  65. package/src/summary/runningSummarizer.ts +82 -11
  66. package/src/summary/summarizer.ts +49 -10
  67. package/src/summary/summarizerTypes.ts +11 -4
  68. package/src/summary/summaryManager.ts +30 -10
@@ -4,6 +4,10 @@
4
4
  */
5
5
 
6
6
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
7
+ import type {
8
+ ISummarizerEvents,
9
+ SummarizerStopReason,
10
+ } from "@fluidframework/container-runtime-definitions/internal";
7
11
  import {
8
12
  IDisposable,
9
13
  IEvent,
@@ -26,11 +30,8 @@ import {
26
30
  EnqueueSummarizeResult,
27
31
  IEnqueueSummarizeOptions,
28
32
  IOnDemandSummarizeOptions,
29
- ISummarizeEventProps,
30
33
  ISummarizeResults,
31
34
  ISummarizer,
32
- ISummarizerEvents,
33
- SummarizerStopReason,
34
35
  } from "./summarizerTypes.js";
35
36
  import { SummaryCollection } from "./summaryCollection.js";
36
37
 
@@ -165,10 +166,6 @@ export class SummaryManager
165
166
  this.refreshSummarizer();
166
167
  };
167
168
 
168
- private readonly handleSummarizeEvent = (eventProps: ISummarizeEventProps) => {
169
- this.emit("summarize", eventProps);
170
- };
171
-
172
169
  private static readonly isStartingOrRunning = (state: SummaryManagerState) =>
173
170
  state === SummaryManagerState.Starting || state === SummaryManagerState.Running;
174
171
 
@@ -271,7 +268,7 @@ export class SummaryManager
271
268
 
272
269
  const summarizer = await this.createSummarizerFn();
273
270
  this.summarizer = summarizer;
274
- this.summarizer.on("summarize", this.handleSummarizeEvent);
271
+ this.setupForwardedEvents();
275
272
 
276
273
  // Re-validate that it need to be running. Due to asynchrony, it may be not the case anymore
277
274
  // If we can't run the LastSummary, simply return as to avoid paying the cost of launching
@@ -345,7 +342,7 @@ export class SummaryManager
345
342
  assert(this.state !== SummaryManagerState.Off, 0x264 /* "Expected: Not Off" */);
346
343
  this.state = SummaryManagerState.Off;
347
344
 
348
- this.summarizer?.off("summarize", this.handleSummarizeEvent);
345
+ this.cleanupForwardedEvents();
349
346
  this.summarizer?.close();
350
347
  this.summarizer = undefined;
351
348
 
@@ -448,7 +445,30 @@ export class SummaryManager
448
445
  this.clientElection.off("electedSummarizerChanged", this.refreshSummarizer);
449
446
  this.connectedState.off("connected", this.handleConnected);
450
447
  this.connectedState.off("disconnected", this.handleDisconnected);
451
- this.summarizer?.off("summarize", this.handleSummarizeEvent);
448
+ this.cleanupForwardedEvents();
452
449
  this._disposed = true;
453
450
  }
451
+
452
+ private readonly forwardedEvents = new Map<any, () => void>();
453
+
454
+ private setupForwardedEvents() {
455
+ [
456
+ "summarize",
457
+ "summarizeAllAttemptsFailed",
458
+ "summarizerStop",
459
+ "summarizerStart",
460
+ "summarizerStartupFailed",
461
+ ].forEach((event) => {
462
+ const listener = (...args: any[]) => {
463
+ this.emit(event, ...args);
464
+ };
465
+ this.summarizer?.on(event as any, listener);
466
+ this.forwardedEvents.set(event, listener);
467
+ });
468
+ }
469
+
470
+ private cleanupForwardedEvents() {
471
+ this.forwardedEvents.forEach((listener, event) => this.summarizer?.off(event, listener));
472
+ this.forwardedEvents.clear();
473
+ }
454
474
  }