From 7020d73223d5b0166200f4ed48c98cd6421d6e8d Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Thu, 2 Sep 2021 16:49:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0=E9=9D=99?= =?UTF-8?q?=E6=80=81=E6=8F=92=E4=BB=B6=E6=B3=A8=E5=86=8C=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shared/cache/cache.ts | 14 +++++++++++--- shared/model/plugin.ts | 13 +++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/shared/cache/cache.ts b/shared/cache/cache.ts index e0367514..2ec18d68 100644 --- a/shared/cache/cache.ts +++ b/shared/cache/cache.ts @@ -1,6 +1,10 @@ import { ChatConverseInfo, fetchConverseInfo } from '../model/converse'; import { findGroupInviteByCode, GroupInvite } from '../model/group'; -import { fetchRegistryPlugins } from '../model/plugin'; +import { + fetchGithubStaticRegistryPlugins, + fetchRegistryPlugins, + PluginManifest, +} from '../model/plugin'; import { fetchUserInfo, UserBaseInfo } from '../model/user'; import { queryClient } from './index'; @@ -51,10 +55,14 @@ export async function getCachedGroupInviteInfo( /** * 获取缓存的插件列表 */ -export async function getCachedRegistryPlugins() { +export async function getCachedRegistryPlugins(): Promise { const data = await queryClient.fetchQuery( ['pluginRegistry'], - () => fetchRegistryPlugins(), + () => + Promise.all([ + fetchRegistryPlugins(), + fetchGithubStaticRegistryPlugins(), + ]).then(([a, b]) => [...a, ...b]), { staleTime: 2 * 60 * 60 * 1000, // 缓存2小时 } diff --git a/shared/model/plugin.ts b/shared/model/plugin.ts index 87118f10..b73d812f 100644 --- a/shared/model/plugin.ts +++ b/shared/model/plugin.ts @@ -54,3 +54,16 @@ export async function fetchRegistryPlugins(): Promise { return data; } + +/** + * 获取官方Github注册表文件 + */ +export async function fetchGithubStaticRegistryPlugins(): Promise< + PluginManifest[] +> { + const data = await fetch( + 'https://raw.githubusercontent.com/msgbyte/tailchat/master/registry.json' + ); + + return await data.json(); +}