Yuki Takei 2 лет назад
Родитель
Сommit
4d6292214f

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

@@ -23,7 +23,7 @@ import { aclService as aclServiceSingletonInstance } from '../service/acl';
 import AppService from '../service/app';
 import AttachmentService from '../service/attachment';
 import { configManager as configManagerSingletonInstance } from '../service/config-manager';
-import { FileUploader } from '../service/file-uploader/file-uploader'; // eslint-disable-line no-unused-vars
+import { FileUploader, getUploader } from '../service/file-uploader'; // eslint-disable-line no-unused-vars
 import { G2GTransferPusherService, G2GTransferReceiverService } from '../service/g2g-transfer';
 import { InstallerService } from '../service/installer';
 import PageService from '../service/page';
@@ -634,7 +634,7 @@ Crowi.prototype.setUpApp = async function() {
  */
 Crowi.prototype.setUpFileUpload = async function(isForceUpdate = false) {
   if (this.fileUploadService == null || isForceUpdate) {
-    this.fileUploadService = require('../service/file-uploader')(this);
+    this.fileUploadService = getUploader(this);
   }
 };
 

+ 14 - 19
apps/app/src/server/service/file-uploader/index.ts

@@ -1,5 +1,12 @@
+import type Crowi from '~/server/crowi';
 import loggerFactory from '~/utils/logger';
 
+import { configManager } from '../config-manager';
+
+import type { FileUploader } from './file-uploader';
+
+export type { FileUploader } from './file-uploader';
+
 const logger = loggerFactory('growi:service:FileUploaderServise');
 
 const envToModuleMappings = {
@@ -14,26 +21,14 @@ const envToModuleMappings = {
   azure:   'azure',
 };
 
-class FileUploadServiceFactory {
-
-  initializeUploader(crowi) {
-    const method = envToModuleMappings[crowi.configManager.getConfig('crowi', 'app:fileUploadType')];
-    const modulePath = `./${method}`;
-    this.uploader = require(modulePath)(crowi);
+export const getUploader = (crowi: Crowi): FileUploader => {
+  const method = envToModuleMappings[configManager.getConfig('crowi', 'app:fileUploadType')];
+  const modulePath = `./${method}`;
+  const uploader = require(modulePath)(crowi);
 
-    if (this.uploader == null) {
-      logger.warn('Failed to initialize uploader.');
-    }
+  if (uploader == null) {
+    logger.warn('Failed to initialize uploader.');
   }
 
-  getUploader(crowi) {
-    this.initializeUploader(crowi);
-    return this.uploader;
-  }
-
-}
-
-module.exports = (crowi) => {
-  const factory = new FileUploadServiceFactory(crowi);
-  return factory.getUploader(crowi);
+  return uploader;
 };