perf: 优化以前代码
This commit is contained in:
parent
2ee8ec7a29
commit
063837350b
2
.gitmodules
vendored
2
.gitmodules
vendored
@ -3,4 +3,4 @@
|
|||||||
url = git@git.xiongxiao.me:kevisual/kevsiual-query-login.git
|
url = git@git.xiongxiao.me:kevisual/kevsiual-query-login.git
|
||||||
[submodule "submodules/query-config"]
|
[submodule "submodules/query-config"]
|
||||||
path = submodules/query-config
|
path = submodules/query-config
|
||||||
url = git@git.xiongxiao.me:kevisual/kevsiual-query-config.git
|
url = git@git.xiongxiao.me:kevisual/kevsiual-query-config.git
|
@ -12,6 +12,8 @@
|
|||||||
"prepub": "envision switch root",
|
"prepub": "envision switch root",
|
||||||
"pub": "envision deploy ./dist -k center -v 0.0.9 -u -o root",
|
"pub": "envision deploy ./dist -k center -v 0.0.9 -u -o root",
|
||||||
"turbo:dev": "turbo dev:lib",
|
"turbo:dev": "turbo dev:lib",
|
||||||
|
"dev:lib": "turbo dev:lib",
|
||||||
|
"dev:query": "turbo dev:lib --filter=@kevisual/query",
|
||||||
"turbo:build": "turbo build --filter=submodules/**"
|
"turbo:build": "turbo build --filter=submodules/**"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
24
pnpm-lock.yaml
generated
24
pnpm-lock.yaml
generated
@ -452,8 +452,11 @@ importers:
|
|||||||
specifier: ^0.0.1
|
specifier: ^0.0.1
|
||||||
version: 0.0.1(rollup@4.36.0)(tslib@2.8.1)(typescript@5.8.2)
|
version: 0.0.1(rollup@4.36.0)(tslib@2.8.1)(typescript@5.8.2)
|
||||||
'@kevisual/query':
|
'@kevisual/query':
|
||||||
specifier: ^0.0.12
|
specifier: ^0.0.14
|
||||||
version: 0.0.12(ws@8.18.1)
|
version: 0.0.14(ws@8.18.1)
|
||||||
|
dotenv:
|
||||||
|
specifier: ^16.4.7
|
||||||
|
version: 16.4.7
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^22.13.11
|
specifier: ^22.13.11
|
||||||
@ -969,9 +972,6 @@ packages:
|
|||||||
crypto-js: ^4.2.0
|
crypto-js: ^4.2.0
|
||||||
eventemitter3: ^5.0.1
|
eventemitter3: ^5.0.1
|
||||||
|
|
||||||
'@kevisual/query@0.0.12':
|
|
||||||
resolution: {integrity: sha512-/1lZJhNCdcNG4a2Nncl55XC/nha5+GZiJPQdP77lufv2dnZfcssA7NHSZ2Ubh0Pm0HWV22IiGfQMiaYl2pkK1Q==}
|
|
||||||
|
|
||||||
'@kevisual/query@0.0.13':
|
'@kevisual/query@0.0.13':
|
||||||
resolution: {integrity: sha512-gSEIDiCvwSaLLAFZv4vam4wSrMsaCuQ3VGjE3kwRwZ8urlVH1TOA+NUO908A22p9m1Iij7Y1Q/JlfSJi2QzuKQ==}
|
resolution: {integrity: sha512-gSEIDiCvwSaLLAFZv4vam4wSrMsaCuQ3VGjE3kwRwZ8urlVH1TOA+NUO908A22p9m1Iij7Y1Q/JlfSJi2QzuKQ==}
|
||||||
|
|
||||||
@ -1937,6 +1937,10 @@ packages:
|
|||||||
dom-helpers@5.2.1:
|
dom-helpers@5.2.1:
|
||||||
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==}
|
||||||
|
|
||||||
|
dotenv@16.4.7:
|
||||||
|
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
dunder-proto@1.0.1:
|
dunder-proto@1.0.1:
|
||||||
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
|
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@ -4230,14 +4234,6 @@ snapshots:
|
|||||||
- rollup
|
- rollup
|
||||||
- typescript
|
- typescript
|
||||||
|
|
||||||
'@kevisual/query@0.0.12(ws@8.18.1)':
|
|
||||||
dependencies:
|
|
||||||
openai: 4.89.0(ws@8.18.1)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- encoding
|
|
||||||
- ws
|
|
||||||
- zod
|
|
||||||
|
|
||||||
'@kevisual/query@0.0.13(ws@8.18.1)':
|
'@kevisual/query@0.0.13(ws@8.18.1)':
|
||||||
dependencies:
|
dependencies:
|
||||||
openai: 4.89.0(ws@8.18.1)
|
openai: 4.89.0(ws@8.18.1)
|
||||||
@ -5261,6 +5257,8 @@ snapshots:
|
|||||||
'@babel/runtime': 7.26.10
|
'@babel/runtime': 7.26.10
|
||||||
csstype: 3.1.3
|
csstype: 3.1.3
|
||||||
|
|
||||||
|
dotenv@16.4.7: {}
|
||||||
|
|
||||||
dunder-proto@1.0.1:
|
dunder-proto@1.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind-apply-helpers: 1.0.2
|
call-bind-apply-helpers: 1.0.2
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import { QueryClient } from '@kevisual/query';
|
import { QueryClient } from '@kevisual/query';
|
||||||
import { create } from 'zustand';
|
import { QueryLoginBrowser } from '@kevisual/query-login';
|
||||||
import { QueryLogin } from '@kevisual/query-login';
|
|
||||||
import { toastLogin } from '@kevisual/resources/pages/message/ToastLogin.tsx';
|
import { toastLogin } from '@kevisual/resources/pages/message/ToastLogin.tsx';
|
||||||
export const query = new QueryClient();
|
export const query = new QueryClient({
|
||||||
|
io: true,
|
||||||
|
});
|
||||||
/**
|
/**
|
||||||
* 登录查询
|
* 登录查询
|
||||||
*/
|
*/
|
||||||
export const queryLogin = new QueryLogin({
|
export const queryLogin = new QueryLoginBrowser({
|
||||||
query,
|
query: query as any,
|
||||||
});
|
});
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
if (window.context) {
|
if (window.context) {
|
||||||
@ -20,51 +20,28 @@ if (window.context) {
|
|||||||
queryLogin,
|
queryLogin,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
// 在请求之前,如果stop了
|
|
||||||
query.beforeRequest = async (config) => {
|
|
||||||
if (config.headers) {
|
|
||||||
const token = localStorage.getItem('token');
|
|
||||||
if (token) {
|
|
||||||
config.headers['Authorization'] = 'Bearer ' + token;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return config;
|
|
||||||
};
|
|
||||||
query.afterResponse = async (res, ctx) => {
|
query.afterResponse = async (res, ctx) => {
|
||||||
if (res?.code === 401) {
|
const newRes = await queryLogin.run401Action(res, ctx, {
|
||||||
if (query?.stop) {
|
afterAlso401: () => {
|
||||||
return { code: 500, success: false, message: '登录已过期' };
|
|
||||||
}
|
|
||||||
query.stop = true;
|
|
||||||
const queryLoginRes = await queryLogin.afterCheck401ToRefreshToken(res, ctx);
|
|
||||||
query.stop = false;
|
|
||||||
if (queryLoginRes.code === 401) {
|
|
||||||
toastLogin();
|
toastLogin();
|
||||||
}
|
},
|
||||||
return queryLoginRes;
|
});
|
||||||
}
|
|
||||||
|
|
||||||
return res as any;
|
return newRes as any;
|
||||||
};
|
};
|
||||||
export const request = query.post;
|
export const request = query.post;
|
||||||
|
|
||||||
export const ws = query.qws?.ws || new WebSocket(query.qws?.url);
|
export const ws = query.qws?.ws;
|
||||||
type Store = {
|
|
||||||
connected: boolean;
|
|
||||||
setConnected: (connected: boolean) => void;
|
|
||||||
};
|
|
||||||
export const useStore = create<Store>((set) => ({
|
|
||||||
connected: false,
|
|
||||||
setConnected: (connected) => set({ connected }),
|
|
||||||
}));
|
|
||||||
|
|
||||||
// 当连接成功时
|
// 当连接成功时
|
||||||
ws.onopen = () => {
|
// query.qws.ws.onopen = () => {
|
||||||
console.log('Connected to WebSocket server');
|
// console.log('Connected to WebSocket server');
|
||||||
useStore.getState().setConnected(true);
|
// };
|
||||||
};
|
|
||||||
|
|
||||||
// 处理 WebSocket 关闭
|
// // 处理 WebSocket 关闭
|
||||||
ws.onclose = () => {
|
// query.qws.ws.onclose = () => {
|
||||||
console.log('Disconnected from WebSocket server');
|
// console.log('Disconnected from WebSocket server');
|
||||||
};
|
// };
|
||||||
|
query.qws.listenConnect(() => {
|
||||||
|
console.log('Connected to WebSocket server');
|
||||||
|
});
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
import { Container, RenderData, ContainerOne } from '@kevisual/container';
|
import { Container } from '@kevisual/container';
|
||||||
import { useEffect, useRef, useState } from 'react';
|
import { useEffect, useRef, useState } from 'react';
|
||||||
import { replace, useParams } from 'react-router';
|
import { useParams } from 'react-router';
|
||||||
import { query, ws, useStore } from '@/modules';
|
import { query } from '@/modules';
|
||||||
|
|
||||||
import { message } from '@/modules/message';
|
import { message } from '@/modules/message';
|
||||||
export const useListener = (id?: string, opts?: any) => {
|
export const useListener = (id?: string, opts?: any) => {
|
||||||
const { refresh } = opts || {};
|
const { refresh } = opts || {};
|
||||||
const connected = useStore((state) => state.connected);
|
const [connected, setConnected] = useState(false);
|
||||||
// 监听服务器的消息
|
// 监听服务器的消息
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!id) return;
|
if (!id) return;
|
||||||
if (!connected) return;
|
if (!connected) return;
|
||||||
|
const ws = query.qws.ws;
|
||||||
ws.send(
|
ws.send(
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
type: 'subscribe',
|
type: 'subscribe',
|
||||||
@ -31,6 +32,14 @@ export const useListener = (id?: string, opts?: any) => {
|
|||||||
ws.removeEventListener('message', listener);
|
ws.removeEventListener('message', listener);
|
||||||
};
|
};
|
||||||
}, [id, connected]);
|
}, [id, connected]);
|
||||||
|
const init = async () => {
|
||||||
|
query.qws.listenConnect(() => {
|
||||||
|
setConnected(true);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
useEffect(() => {
|
||||||
|
init();
|
||||||
|
}, []);
|
||||||
const listener = (event) => {
|
const listener = (event) => {
|
||||||
const parseIfJson = (data: string) => {
|
const parseIfJson = (data: string) => {
|
||||||
try {
|
try {
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit a457dbabe931327b3b644d88e07c41ce82af4e76
|
Subproject commit 24f091ac792342ea295496cf8ff49f6c79ab47a6
|
Loading…
x
Reference in New Issue
Block a user