chore: bump version to 0.0.53, update dependencies, and enhance query handling with token support

This commit is contained in:
2026-03-06 23:11:10 +08:00
parent 983c7175cc
commit 013a399b7f
3 changed files with 33 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@kevisual/query", "name": "@kevisual/query",
"version": "0.0.52", "version": "0.0.53",
"type": "module", "type": "module",
"scripts": { "scripts": {
"build": "npm run clean && bun run bun.config.ts", "build": "npm run clean && bun run bun.config.ts",
@@ -19,10 +19,10 @@
"description": "", "description": "",
"devDependencies": { "devDependencies": {
"@kevisual/code-builder": "^0.0.6", "@kevisual/code-builder": "^0.0.6",
"@kevisual/router": "^0.0.84", "@kevisual/router": "^0.0.85",
"@types/node": "^25.3.0", "@types/node": "^25.3.5",
"typescript": "^5.9.3", "typescript": "^5.9.3",
"es-toolkit": "^1.44.0", "es-toolkit": "^1.45.1",
"zod": "^4.3.6", "zod": "^4.3.6",
"zustand": "^5.0.11" "zustand": "^5.0.11"
}, },

32
pnpm-lock.yaml generated
View File

@@ -12,14 +12,14 @@ importers:
specifier: ^0.0.6 specifier: ^0.0.6
version: 0.0.6 version: 0.0.6
'@kevisual/router': '@kevisual/router':
specifier: ^0.0.84 specifier: ^0.0.85
version: 0.0.84 version: 0.0.85
'@types/node': '@types/node':
specifier: ^25.3.0 specifier: ^25.3.5
version: 25.3.0 version: 25.3.5
es-toolkit: es-toolkit:
specifier: ^1.44.0 specifier: ^1.45.1
version: 1.44.0 version: 1.45.1
typescript: typescript:
specifier: ^5.9.3 specifier: ^5.9.3
version: 5.9.3 version: 5.9.3
@@ -36,14 +36,14 @@ packages:
resolution: {integrity: sha512-0aqATB31/yw4k4s5/xKnfr4DKbUnx8e3Z3BmKbiXTrc+CqWiWTdlGe9bKI9dZ2Df+xNp6g11W4xM2NICNyyCCw==} resolution: {integrity: sha512-0aqATB31/yw4k4s5/xKnfr4DKbUnx8e3Z3BmKbiXTrc+CqWiWTdlGe9bKI9dZ2Df+xNp6g11W4xM2NICNyyCCw==}
hasBin: true hasBin: true
'@kevisual/router@0.0.84': '@kevisual/router@0.0.85':
resolution: {integrity: sha512-l/TUFuqTJegB/S3FZQRBMUoz0Spvg8EzV3C/kBi/VO9KKCzjqZDVvhZJJbTQh9879CBY6vUy1ajo9WcLYnwbNA==} resolution: {integrity: sha512-ihSzPXHOMSOnZD/+Eso4yZMt4MoUXyLdfRHhXJGg90+sJBr/BjsmgAokit4pI9gWU+Rs/3JqQ2/aqA43FHtGoA==}
'@types/node@25.3.0': '@types/node@25.3.5':
resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==} resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==}
es-toolkit@1.44.0: es-toolkit@1.45.1:
resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==} resolution: {integrity: sha512-/jhoOj/Fx+A+IIyDNOvO3TItGmlMKhtX8ISAHKE90c4b/k1tqaqEZ+uUqfpU8DMnW5cgNJv606zS55jGvza0Xw==}
typescript@5.9.3: typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
@@ -78,15 +78,15 @@ snapshots:
'@kevisual/code-builder@0.0.6': {} '@kevisual/code-builder@0.0.6': {}
'@kevisual/router@0.0.84': '@kevisual/router@0.0.85':
dependencies: dependencies:
es-toolkit: 1.44.0 es-toolkit: 1.45.1
'@types/node@25.3.0': '@types/node@25.3.5':
dependencies: dependencies:
undici-types: 7.18.2 undici-types: 7.18.2
es-toolkit@1.44.0: {} es-toolkit@1.45.1: {}
typescript@5.9.3: {} typescript@5.9.3: {}

View File

@@ -1,4 +1,4 @@
import { adapter, Method, AdapterOpts } from './adapter.ts'; import { adapter, Method, AdapterOpts, methods } from './adapter.ts';
import type { QueryWs } from './ws.ts'; import type { QueryWs } from './ws.ts';
/** /**
* 请求前处理函数 * 请求前处理函数
@@ -15,6 +15,7 @@ export type Fn = (opts: {
export type QueryOpts = { export type QueryOpts = {
adapter?: typeof adapter; adapter?: typeof adapter;
token?: string;
[key: string]: any; [key: string]: any;
} & AdapterOpts; } & AdapterOpts;
@@ -155,6 +156,7 @@ export class Query {
const _beforeRequest = beforeRequest || this.beforeRequest; const _beforeRequest = beforeRequest || this.beforeRequest;
const _afterResponse = afterResponse || this.afterResponse; const _afterResponse = afterResponse || this.afterResponse;
const _timeout = timeout || this.timeout; const _timeout = timeout || this.timeout;
const req = { const req = {
url: url, url: url,
headers: _headers, headers: _headers,
@@ -182,6 +184,10 @@ export class Query {
}); });
} }
} }
const headers = req.headers || {};
if (options?.token && !headers['Authorization']) {
headers['Authorization'] = `Bearer ${options.token}`;
}
} catch (e) { } catch (e) {
console.error('request beforeFn error', e, req); console.error('request beforeFn error', e, req);
return wrapperError({ return wrapperError({
@@ -254,20 +260,20 @@ export class Query {
this.afterResponse = fn; this.afterResponse = fn;
} }
async fetchText(urlOrOptions?: string | QueryOpts, options?: QueryOpts): Promise<Result<any>> { async fetchText(urlOrOptions?: string | QueryOpts, options?: QueryOpts): Promise<Result<any>> {
let _options = { ...options }; let _options = { method: 'GET' as const, ...options };
if (typeof urlOrOptions === 'string' && !_options.url) { if (typeof urlOrOptions === 'string' && !_options.url) {
_options.url = urlOrOptions; _options.url = urlOrOptions;
} }
if (typeof urlOrOptions === 'object') { if (typeof urlOrOptions === 'object') {
_options = { ...urlOrOptions, ..._options }; _options = { ...urlOrOptions, ..._options };
} }
const headers = { ...this.headers, ..._options.headers };
if (options?.token && !headers['Authorization'] && _options.method !== 'GET') {
headers['Authorization'] = `Bearer ${options.token}`;
}
const res = await adapter({ const res = await adapter({
method: 'GET',
..._options, ..._options,
headers: { headers,
...this.headers,
...(_options?.headers || {}),
},
}); });
if (res && !res.code) { if (res && !res.code) {
return { return {