diff --git a/package.json b/package.json index c46c48c..d14da4a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kevisual/query", - "version": "0.0.34", + "version": "0.0.35", "main": "dist/query-browser.js", "private": false, "type": "module", diff --git a/src/query-browser.ts b/src/query-browser.ts index 7ec40fe..fcdfb69 100644 --- a/src/query-browser.ts +++ b/src/query-browser.ts @@ -25,7 +25,7 @@ export class QueryClient extends Query { constructor(opts?: QueryOptions & { tokenName?: string; storage?: Storage; io?: boolean }) { super(opts); this.tokenName = opts?.tokenName || 'token'; - this.storage = opts?.storage || localStorage; + this.storage = opts?.storage || globalThis.localStorage; this.beforeRequest = async (opts) => { const token = this.token || this.getToken(); if (token) { diff --git a/src/query.ts b/src/query.ts index 14fb187..774e0d7 100644 --- a/src/query.ts +++ b/src/query.ts @@ -24,6 +24,7 @@ export type QueryOptions = { headers?: Record; timeout?: number; isClient?: boolean; + beforeRequest?: Fn; } export type Data = { path?: string; @@ -113,6 +114,20 @@ export class Query { 'Content-Type': 'application/json', }; this.timeout = opts?.timeout || 60000 * 3; // 默认超时时间为 60s * 3 + if (opts.beforeRequest) { + this.beforeRequest = opts.beforeRequest; + } else { + this.beforeRequest = async (opts) => { + const token = globalThis?.localStorage?.getItem('token'); + if (token) { + opts.headers = { + ...opts.headers, + Authorization: `Bearer ${token}`, + }; + } + return opts; + }; + } } setQueryWs(qws: QueryWs) { this.qws = qws;