All files / src/bootstrap setupRuntime.js

100% Statements 50/50
100% Branches 3/3
100% Functions 2/2
100% Lines 50/50

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 513x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 1x 1x 1x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 2x 2x 2x 2x  
function setupRuntime({
  vscodeApi,
  context,
  logger,
  SidebarProviderClass,
  CodeReviewPanelClass,
  PRReviewServiceClass,
  ChatParticipantClass,
}) {
  const sidebarProvider = new SidebarProviderClass(context, logger);
  const codeReviewPanel = new CodeReviewPanelClass(context.extensionUri);
 
  const sidebarDisposable = vscodeApi.window.registerWebviewViewProvider(
    "gbotSidebar",
    sidebarProvider,
  );
  const panelDisposable = vscodeApi.window.registerWebviewViewProvider(
    "gbot.codeReviewPanel",
    codeReviewPanel,
  );
 
  const prReviewService = new PRReviewServiceClass(logger, context);
  prReviewService.setCodeReviewPanel(codeReviewPanel);
 
  const prReviewServiceDisposable = {
    dispose: () => {
      if (typeof prReviewService.dispose === "function") {
        prReviewService.dispose();
      }
    },
  };
 
  const chatParticipant = new ChatParticipantClass(prReviewService, logger);
  chatParticipant.register(context);
 
  return {
    sidebarProvider,
    codeReviewPanel,
    prReviewService,
    disposables: [
      sidebarDisposable,
      panelDisposable,
      prReviewServiceDisposable,
    ],
  };
}
 
module.exports = {
  setupRuntime,
};