From ee1008b75816c2962e8f03fe34de9e688db2c348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?hbj=E7=99=BD=E5=A4=9C?= Date: Fri, 15 Sep 2023 21:10:50 +0000 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20lib/rend?= =?UTF-8?q?erer/loader.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/renderer/loader.js | 56 ------------------------------------------ 1 file changed, 56 deletions(-) delete mode 100644 lib/renderer/loader.js diff --git a/lib/renderer/loader.js b/lib/renderer/loader.js deleted file mode 100644 index f750611..0000000 --- a/lib/renderer/loader.js +++ /dev/null @@ -1,56 +0,0 @@ -import fs from 'node:fs' -import yaml from 'yaml' -import lodash from 'lodash' -import cfg from '../config/config.js' -import { Data } from '#miao' -import Renderer from './Renderer.js' - -/** 全局变量 Renderer */ -global.Renderer = Renderer - -/** - * 加载渲染器 - */ -class RendererLoader { - constructor() { - this.renderers = new Map() - this.dir = './renderers' - // TODO 渲染器热加载 - this.watcher = {} - } - - static async init() { - const render = new RendererLoader() - await render.load() - return render - } - - async load() { - const subFolders = fs.readdirSync(this.dir, { withFileTypes: true }).filter((dirent) => dirent.isDirectory()) - for (let subFolder of subFolders) { - let name = subFolder.name - try { - const rendererFn = await Data.importDefault(`${this.dir}/${name}/index.js`) - let configFile = `${this.dir}/${name}/config.yaml` - let rendererCfg = fs.existsSync(configFile) ? yaml.parse(fs.readFileSync(configFile, 'utf8')) : {} - let renderer = rendererFn(rendererCfg) - if (!renderer.id || !renderer.type || !renderer.render || !lodash.isFunction(renderer.render)) { - logger.warn('渲染后端 ' + (renderer.id || subFolder.name) + ' 不可用') - } - this.renderers.set(renderer.id, renderer) - logger.info(`加载渲染后端 ${renderer.id}`) - } catch (err) { - logger.error(`渲染后端 ${name} 加载失败`) - logger.error(err) - } - } - } - - getRenderer(name = cfg.renderer?.name || 'puppeteer') { - // TODO 渲染器降级 - return this.renderers.get(name) - } -} - - -export default await RendererLoader.init() \ No newline at end of file