Skip to content

Commit 7af2627

Browse files
committed
解决跨域问题
1 parent 376e2a2 commit 7af2627

4 files changed

Lines changed: 84 additions & 6 deletions

File tree

packages/app/client/sdk.gen.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// This file is auto-generated by @hey-api/openapi-ts
22

33
import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
4-
import type { DeleteV0PluginData, DeleteV0PluginResponse, GetV0PluginData, GetV0PluginResponse, PutV0PluginData, PutV0PluginResponse, GetV0PluginExtData, GetV0PluginExtResponse, PatchV0PluginExtData, PatchV0PluginExtResponse, PostV0DifyRetrievalData, PostV0DifyRetrievalResponse, PostV0DifyRetrievalError, PostV0BaseByKnowledgeIdSearchData, PostV0BaseByKnowledgeIdSearchResponse, PostV0BaseByKnowledgeIdSearchError, DeleteV0BaseData, DeleteV0BaseResponse, GetV0BaseData, GetV0BaseResponse, PutV0BaseData, PutV0BaseResponse, DeleteV0BaseByKnowledgeIdEmbedderData, DeleteV0BaseByKnowledgeIdEmbedderResponse, GetV0BaseByKnowledgeIdEmbedderData, GetV0BaseByKnowledgeIdEmbedderResponse, PostV0BaseByKnowledgeIdEmbedderData, PostV0BaseByKnowledgeIdEmbedderResponse, GetSystemData, GetSystemResponse, PostSystemData, PostSystemResponse, PostSystemError } from './types.gen';
4+
import type { GetV0PluginMarketData, GetV0PluginMarketResponse, DeleteV0PluginData, DeleteV0PluginResponse, GetV0PluginData, GetV0PluginResponse, PutV0PluginData, PutV0PluginResponse, GetV0PluginExtData, GetV0PluginExtResponse, PatchV0PluginExtData, PatchV0PluginExtResponse, PostV0DifyRetrievalData, PostV0DifyRetrievalResponse, PostV0DifyRetrievalError, PostV0BaseByKnowledgeIdSearchData, PostV0BaseByKnowledgeIdSearchResponse, PostV0BaseByKnowledgeIdSearchError, DeleteV0BaseData, DeleteV0BaseResponse, GetV0BaseData, GetV0BaseResponse, PutV0BaseData, PutV0BaseResponse, DeleteV0BaseByKnowledgeIdEmbedderData, DeleteV0BaseByKnowledgeIdEmbedderResponse, GetV0BaseByKnowledgeIdEmbedderData, GetV0BaseByKnowledgeIdEmbedderResponse, PostV0BaseByKnowledgeIdEmbedderData, PostV0BaseByKnowledgeIdEmbedderResponse, GetSystemData, GetSystemResponse, PostSystemData, PostSystemResponse, PostSystemError } from './types.gen';
55
import { client as _heyApiClient } from './client.gen';
66

77
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
@@ -18,6 +18,22 @@ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends
1818
meta?: Record<string, unknown>;
1919
};
2020

21+
/**
22+
* List market plugin
23+
*/
24+
export const getV0PluginMarket = <ThrowOnError extends boolean = false>(options?: Options<GetV0PluginMarketData, ThrowOnError>) => {
25+
return (options?.client ?? _heyApiClient).get<GetV0PluginMarketResponse, unknown, ThrowOnError>({
26+
security: [
27+
{
28+
scheme: 'bearer',
29+
type: 'http'
30+
}
31+
],
32+
url: '/v0/plugin/market',
33+
...options
34+
});
35+
};
36+
2137
/**
2238
* Delete a plugin
2339
*/

packages/app/client/types.gen.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,26 @@ export type SearchParam = {
135135
locales?: Array<string>;
136136
};
137137

138+
export type GetV0PluginMarketData = {
139+
body?: never;
140+
path?: never;
141+
query?: never;
142+
url: '/v0/plugin/market';
143+
};
144+
145+
export type GetV0PluginMarketResponses = {
146+
/**
147+
* List plugins in market
148+
*/
149+
200: Array<{
150+
name: string;
151+
pluginType: 'DocLoader' | 'DocSplitter';
152+
version: string;
153+
}>;
154+
};
155+
156+
export type GetV0PluginMarketResponse = GetV0PluginMarketResponses[keyof GetV0PluginMarketResponses];
157+
138158
export type DeleteV0PluginData = {
139159
body?: never;
140160
path?: never;

packages/app/src/apis/plugin/index.ts

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,35 @@ import { DocBasePlugin } from "core";
44

55
const app = new OpenAPIHono();
66

7+
// Add a plugin
8+
const marketPlugin = createRoute({
9+
tags: ["plugin"],
10+
method: "get",
11+
path: "/market",
12+
summary: "List market plugin",
13+
security: [
14+
{
15+
Bearer: [],
16+
},
17+
],
18+
responses: {
19+
200: {
20+
description: "List plugins in market",
21+
content: {
22+
"application/json": {
23+
schema: z.array(
24+
z.object({
25+
name: z.string(),
26+
pluginType: z.enum(["DocLoader", "DocSplitter"]),
27+
version: z.string(),
28+
})
29+
),
30+
},
31+
},
32+
},
33+
},
34+
});
35+
736
// Add a plugin
837
const addPlugin = createRoute({
938
tags: ["plugin"],
@@ -167,6 +196,16 @@ const setExt = createRoute({
167196
},
168197
});
169198

199+
// List market plugins
200+
app.openapi(marketPlugin, async (c) => {
201+
console.info("Listing market plugins");
202+
const res = await fetch(
203+
"https://cdn.jsdmirror.com/gh/docbase-cc/plugins/index.json"
204+
);
205+
const data = await res.json();
206+
return c.json(data);
207+
});
208+
170209
// Install a plugin
171210
app.openapi(addPlugin, async (c) => {
172211
console.info("Starting to install plugin:", c.req.valid("query").name);

packages/ui/pages/plugins.vue

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
</template>
2727

2828
<script setup lang="ts">
29-
import { getV0Plugin, putV0Plugin } from "app/client";
29+
import { getV0Plugin, putV0Plugin, getV0PluginMarket } from "app/client";
3030
3131
const plugins = ref<
3232
{ name: string; pluginType: string; installed: boolean; loading: boolean }[]
@@ -66,11 +66,14 @@ onMounted(async () => {
6666
}));
6767
6868
// 发起网络请求获取指定JSON文件内容
69-
const res = await fetch(
70-
"https://cdn.jsdmirror.com/gh/docbase-cc/plugins/index.json"
71-
);
69+
const res = await getV0PluginMarket()
7270
73-
const uninstalledPlugins = (await res.json())
71+
if (!res.data) {
72+
console.error("未获取到插件市场信息");
73+
return;
74+
}
75+
76+
const uninstalledPlugins = res.data
7477
.map((i: any) => ({
7578
...i,
7679
installed: false,

0 commit comments

Comments
 (0)