feat: support blockly online debug
Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
		@@ -6,6 +6,7 @@ import { plugin as pluginApi, server, task } from '@ccms/api'
 | 
			
		||||
import { plugin, interfaces, cmd } from '@ccms/plugin'
 | 
			
		||||
import { inject, ContainerInstance, Container } from '@ccms/container'
 | 
			
		||||
import io, { Server as SocketIOServer, Socket as SocketIOSocket } from '@ccms/websocket'
 | 
			
		||||
import * as fs from '@ccms/common/dist/fs'
 | 
			
		||||
 | 
			
		||||
const suffixMap = {
 | 
			
		||||
    ts: 'typescript',
 | 
			
		||||
@@ -25,6 +26,8 @@ export class MiaoConsole extends interfaces.Plugin {
 | 
			
		||||
    private task: task.TaskManager
 | 
			
		||||
    @inject(pluginApi.PluginManager)
 | 
			
		||||
    private pluginManager: pluginApi.PluginManager
 | 
			
		||||
    @inject(pluginApi.PluginFolder)
 | 
			
		||||
    private pluginFolder: string;
 | 
			
		||||
 | 
			
		||||
    private pipeline: any;
 | 
			
		||||
    private socketIOServer: SocketIOServer;
 | 
			
		||||
@@ -92,6 +95,24 @@ export class MiaoConsole extends interfaces.Plugin {
 | 
			
		||||
            client.on('edit', (file: string, fn) => {
 | 
			
		||||
                fn && fn(base.read(file), suffixMap[file.split('.', 2)[1]])
 | 
			
		||||
            })
 | 
			
		||||
            client.on('save', (name: string, content: string, fn) => {
 | 
			
		||||
                this.logger.console(`§6客户端 §b${client.id} §6请求更新插件 §a${name} §6...`)
 | 
			
		||||
                let file = fs.concat(root, this.pluginFolder, name + '.js')
 | 
			
		||||
                if (!fs.exists(file)) { return fn('§6插件 §a' + name + ' §6尚未安装 §c请先创建空文件 或安装插件!') }
 | 
			
		||||
                try {
 | 
			
		||||
                    base.save(file, content)
 | 
			
		||||
                    this.pluginManager.reload(name);
 | 
			
		||||
                    fn('§6插件 §a' + name + ' §6更新成功!')
 | 
			
		||||
                } catch (error) {
 | 
			
		||||
                    this.logger.error(error)
 | 
			
		||||
                    fn('§6插件 §a' + name + ' §4更新异常 错误: ' + error)
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
            })
 | 
			
		||||
            client.on('error', (error) => {
 | 
			
		||||
                this.logger.console(`§6客户端 §b${client.id} §c触发异常: ${error}`)
 | 
			
		||||
                this.logger.error(error)
 | 
			
		||||
            })
 | 
			
		||||
            client.on('disconnect', () => {
 | 
			
		||||
                this.logger.console(`§6客户端 §b${client.id} §c断开连接...`)
 | 
			
		||||
            })
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user