瀏覽代碼

cleanup

master
peter 6 年之前
父節點
當前提交
9efbf54908
共有 1 個文件被更改,包括 27 次插入22 次删除
  1. 27
    22
      src/backend/PluginLoader.ts

+ 27
- 22
src/backend/PluginLoader.ts 查看文件

4
 import { Plugin } from "./Plugin";
4
 import { Plugin } from "./Plugin";
5
 import { FrontworkAdmin } from "./Admin";
5
 import { FrontworkAdmin } from "./Admin";
6
 
6
 
7
-export type PluginLoaderIfc = {
8
-    PluginLoader: {
9
-        installPlugin: (name:string, force:boolean) => Promise<FolderStatus>
10
-        startPlugin: (name:string) => Promise<boolean>
11
-        updatePlugin: (name:string) => Promise<boolean>
12
-        setPluginVersion: (name:string, tag:string) => Promise<FolderStatus>
13
-        getLoadedPluginNames: () => Promise<String[]>
14
-        selfUpdate: (force:boolean) => Promise<FolderStatus>
15
-        destroy: () => Promise<void> 
16
-    }
17
-}
18
-
19
-class PluginLoader
20
-implements RPCExporter<PluginLoaderIfc, "PluginLoader">{
21
-    
22
-    name = "PluginLoader" as "PluginLoader";
7
+class PluginLoader {
23
     private runningPlugins: Plugin[]
8
     private runningPlugins: Plugin[]
24
     private pluginUpdaters:{[name in string]:Git.Updater} = {}
9
     private pluginUpdaters:{[name in string]:Git.Updater} = {}
25
 
10
 
26
     constructor(private admin:FrontworkAdmin){}
11
     constructor(private admin:FrontworkAdmin){}
27
 
12
 
28
-    private async selfUpdate(force:boolean = false){
13
+    async selfUpdate(force:boolean = false){
29
         const updater = new Git.Updater({
14
         const updater = new Git.Updater({
30
             schema: 'https',
15
             schema: 'https',
31
             localPath: './dist',
16
             localPath: './dist',
39
             //logger.warn("Cloning fb-dist/admin into ./dist ..."+(force?" USING FORCE!":""))
24
             //logger.warn("Cloning fb-dist/admin into ./dist ..."+(force?" USING FORCE!":""))
40
             status = await updater.cloneRepo(force)
25
             status = await updater.cloneRepo(force)
41
 
26
 
42
-            //this.destroy()
27
+            this.destroy()
43
             const installer = eval("require")("./Installer").installAdmin
28
             const installer = eval("require")("./Installer").installAdmin
44
             installer(this.getPlugins())
29
             installer(this.getPlugins())
45
         }
30
         }
55
             remotePath: 'frontwork-distribution',
40
             remotePath: 'frontwork-distribution',
56
             repoName: name
41
             repoName: name
57
         })
42
         })
58
-        //new GitUpdater("./plugins/"+name)
59
         const status = await this.pluginUpdaters[name].cloneRepo(force)
43
         const status = await this.pluginUpdaters[name].cloneRepo(force)
60
         return status
44
         return status
61
     }
45
     }
79
         }
63
         }
80
 */
64
 */
81
 
65
 
82
-        let str = "../plugins/"+name+"/Plugin"
83
-        const pluginClass = await eval('require')(str)
66
+        let evalstr = "../plugins/"+name+"/Plugin"
67
+        const pluginClass = await eval('require')(evalstr)
84
         const pluginObj = new pluginClass.default(this)
68
         const pluginObj = new pluginClass.default(this)
85
         try{
69
         try{
86
             if(pluginObj.start)
70
             if(pluginObj.start)
142
         return [...this.runningPlugins]
126
         return [...this.runningPlugins]
143
     }
127
     }
144
 
128
 
145
-    private async destroy(){
129
+    async destroy(){
146
         return
130
         return
147
     }
131
     }
148
 
132
 
133
+}
134
+
135
+
136
+export type PluginLoaderIfc = {
137
+    PluginLoader: {
138
+        installPlugin: (name:string, force:boolean) => Promise<FolderStatus>
139
+        startPlugin: (name:string) => Promise<boolean>
140
+        updatePlugin: (name:string) => Promise<boolean>
141
+        setPluginVersion: (name:string, tag:string) => Promise<FolderStatus>
142
+        getLoadedPluginNames: () => Promise<String[]>
143
+        selfUpdate: (force:boolean) => Promise<FolderStatus>
144
+        destroy: () => Promise<void> 
145
+    }
146
+}
147
+
148
+class RPCPluginLoader 
149
+extends PluginLoader
150
+implements RPCExporter<PluginLoaderIfc, "PluginLoader">{
151
+
152
+    name = "PluginLoader" as "PluginLoader";
153
+
149
     exportRPCs(){
154
     exportRPCs(){
150
         return [{
155
         return [{
151
             name: "installPlugin" as "installPlugin",
156
             name: "installPlugin" as "installPlugin",

Loading…
取消
儲存