Просмотр исходного кода

rename YjsConnectionManager to YjsService

Yuki Takei 1 год назад
Родитель
Сommit
ad646b7596

+ 3 - 3
apps/app/src/server/crowi/index.js

@@ -36,7 +36,7 @@ import SearchService from '../service/search';
 import { SlackIntegrationService } from '../service/slack-integration';
 import UserGroupService from '../service/user-group';
 import { UserNotificationService } from '../service/user-notification';
-import { instantiateYjsConnectionManager } from '../service/yjs-connection-manager';
+import { instantiateYjsService } from '../service/yjs';
 import { getMongoUri, mongoOptions } from '../util/mongoose-utils';
 
 
@@ -475,8 +475,8 @@ Crowi.prototype.start = async function() {
   // attach to socket.io
   this.socketIoService.attachServer(httpServer);
 
-  // Initialization YjsConnectionManager
-  instantiateYjsConnectionManager(this.socketIoService.io);
+  // Initialization YjsService
+  instantiateYjsService(this.socketIoService.io);
   this.socketIoService.setupYjsConnection();
 
   await this.autoInstall();

+ 3 - 3
apps/app/src/server/routes/apiv3/page/update-page.ts

@@ -18,7 +18,7 @@ import {
 } from '~/server/models';
 import type { PageDocument, PageModel } from '~/server/models/page';
 import { preNotifyService } from '~/server/service/pre-notify';
-import { getYjsConnectionManager } from '~/server/service/yjs-connection-manager';
+import { getYjsService } from '~/server/service/yjs';
 import { generalXssFilter } from '~/services/general-xss-filter';
 import loggerFactory from '~/utils/logger';
 
@@ -67,8 +67,8 @@ export const updatePageHandlersFactory: UpdatePageHandlersFactory = (crowi) => {
     // Reflect the updates in ydoc
     const origin = req.body.origin;
     if (origin === Origin.View || origin === undefined) {
-      const yjsConnectionManager = getYjsConnectionManager();
-      await yjsConnectionManager.handleYDocUpdate(req.body.pageId, req.body.body);
+      const yjsService = getYjsService();
+      await yjsService.handleYDocUpdate(req.body.pageId, req.body.body);
     }
 
     // persist activity

+ 4 - 4
apps/app/src/server/service/page/index.ts

@@ -41,7 +41,6 @@ import {
 import type { PageTagRelationDocument } from '~/server/models/page-tag-relation';
 import PageTagRelation from '~/server/models/page-tag-relation';
 import type { UserGroupDocument } from '~/server/models/user-group';
-import { getYjsConnectionManager } from '~/server/service/yjs-connection-manager';
 import { createBatchStream } from '~/server/util/batch-stream';
 import { collectAncestorPaths } from '~/server/util/collect-ancestor-paths';
 import { generalXssFilter } from '~/services/general-xss-filter';
@@ -63,6 +62,7 @@ import { divideByType } from '../../util/granted-group';
 import { configManager } from '../config-manager';
 import type { IPageGrantService } from '../page-grant';
 import { preNotifyService } from '../pre-notify';
+import { getYjsService } from '../yjs';
 
 import { BULK_REINDEX_SIZE, LIMIT_FOR_MULTIPLE_PAGE_OP } from './consts';
 import type { IPageService } from './page-service';
@@ -4444,10 +4444,10 @@ class PageService implements IPageService {
   }
 
   async getYjsData(pageId: string): Promise<CurrentPageYjsData> {
-    const yjsConnectionManager = getYjsConnectionManager();
+    const yjsService = getYjsService();
 
-    const currentYdoc = yjsConnectionManager.getCurrentYdoc(pageId);
-    const persistedYdoc = await yjsConnectionManager.getPersistedYdoc(pageId);
+    const currentYdoc = yjsService.getCurrentYdoc(pageId);
+    const persistedYdoc = await yjsService.getPersistedYdoc(pageId);
 
     const yjsDraft = (currentYdoc ?? persistedYdoc)?.getText('codemirror').toString();
     const hasRevisionBodyDiff = await this.hasRevisionBodyDiff(pageId, yjsDraft);

+ 5 - 5
apps/app/src/server/service/socket-io.ts

@@ -15,7 +15,7 @@ import type Crowi from '../crowi';
 import { RoomPrefix, getRoomNameWithId } from '../util/socket-io-helpers';
 
 import { configManager } from './config-manager';
-import { getYjsConnectionManager, extractPageIdFromYdocId } from './yjs-connection-manager';
+import { getYjsService, extractPageIdFromYdocId } from './yjs';
 
 
 const logger = loggerFactory('growi:service:socket-io');
@@ -180,11 +180,11 @@ class SocketIoService {
   }
 
   setupYjsConnection() {
-    const yjsConnectionManager = getYjsConnectionManager();
+    const yjsService = getYjsService();
 
     this.io.on('connection', (socket) => {
 
-      yjsConnectionManager.ysocketioInstance.on('awareness-update', async(doc: Document) => {
+      yjsService.ysocketioInstance.on('awareness-update', async(doc: Document) => {
         const pageId = extractPageIdFromYdocId(doc.name);
 
         if (pageId == null) return;
@@ -198,7 +198,7 @@ class SocketIoService {
 
         // Triggered when the last user leaves the editor
         if (awarenessStateSize === 0) {
-          const currentYdoc = yjsConnectionManager.getCurrentYdoc(pageId);
+          const currentYdoc = yjsService.getCurrentYdoc(pageId);
           const yjsDraft = currentYdoc?.getText('codemirror').toString();
           const hasRevisionBodyDiff = await this.crowi.pageService.hasRevisionBodyDiff(pageId, yjsDraft);
           this.io
@@ -209,7 +209,7 @@ class SocketIoService {
 
       socket.on(GlobalSocketEventName.YDocSync, async({ pageId, initialValue }) => {
         try {
-          await yjsConnectionManager.handleYDocSync(pageId, initialValue);
+          await yjsService.handleYDocSync(pageId, initialValue);
         }
         catch (error) {
           logger.warn(error.message);

+ 8 - 8
apps/app/src/server/service/yjs-connection-manager.ts → apps/app/src/server/service/yjs.ts

@@ -13,9 +13,9 @@ export const extractPageIdFromYdocId = (ydocId: string): string | undefined => {
   return result?.[1];
 };
 
-class YjsConnectionManager {
+class YjsService {
 
-  private static instance: YjsConnectionManager;
+  private static instance: YjsService;
 
   private ysocketio: YSocketIO;
 
@@ -41,10 +41,10 @@ class YjsConnectionManager {
     }
 
     if (io == null) {
-      throw new Error("'io' is required if initialize YjsConnectionManager");
+      throw new Error("'io' is required if initialize YjsService");
     }
 
-    this.instance = new YjsConnectionManager(io);
+    this.instance = new YjsService(io);
     return this.instance;
   }
 
@@ -110,11 +110,11 @@ class YjsConnectionManager {
 
 }
 
-export const instantiateYjsConnectionManager = (io: Server): YjsConnectionManager => {
-  return YjsConnectionManager.getInstance(io);
+export const instantiateYjsService = (io: Server): YjsService => {
+  return YjsService.getInstance(io);
 };
 
 // export the singleton instance
-export const getYjsConnectionManager = (): YjsConnectionManager => {
-  return YjsConnectionManager.getInstance();
+export const getYjsService = (): YjsService => {
+  return YjsService.getInstance();
 };