init query login
This commit is contained in:
		
							
								
								
									
										199
									
								
								node_modules/.vite/deps/@kevisual_cache.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								node_modules/.vite/deps/@kevisual_cache.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,199 @@ | ||||
| import { | ||||
|   __publicField | ||||
| } from "./chunk-V6TY7KAL.js"; | ||||
|  | ||||
| // ../../node_modules/.pnpm/@kevisual+cache@0.0.1_rollup@4.36.0_tslib@2.8.1_typescript@5.8.2/node_modules/@kevisual/cache/dist/cache.js | ||||
| function promisifyRequest(request) { | ||||
|   return new Promise((resolve, reject) => { | ||||
|     request.oncomplete = request.onsuccess = () => resolve(request.result); | ||||
|     request.onabort = request.onerror = () => reject(request.error); | ||||
|   }); | ||||
| } | ||||
| function createStore(dbName, storeName) { | ||||
|   const request = indexedDB.open(dbName); | ||||
|   request.onupgradeneeded = () => request.result.createObjectStore(storeName); | ||||
|   const dbp = promisifyRequest(request); | ||||
|   return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName))); | ||||
| } | ||||
| var defaultGetStoreFunc; | ||||
| function defaultGetStore() { | ||||
|   if (!defaultGetStoreFunc) { | ||||
|     defaultGetStoreFunc = createStore("keyval-store", "keyval"); | ||||
|   } | ||||
|   return defaultGetStoreFunc; | ||||
| } | ||||
| function get(key, customStore = defaultGetStore()) { | ||||
|   return customStore("readonly", (store) => promisifyRequest(store.get(key))); | ||||
| } | ||||
| function set(key, value, customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => { | ||||
|     store.put(value, key); | ||||
|     return promisifyRequest(store.transaction); | ||||
|   }); | ||||
| } | ||||
| function setMany(entries2, customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => { | ||||
|     entries2.forEach((entry) => store.put(entry[1], entry[0])); | ||||
|     return promisifyRequest(store.transaction); | ||||
|   }); | ||||
| } | ||||
| function getMany(keys2, customStore = defaultGetStore()) { | ||||
|   return customStore("readonly", (store) => Promise.all(keys2.map((key) => promisifyRequest(store.get(key))))); | ||||
| } | ||||
| function update(key, updater, customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => ( | ||||
|     // Need to create the promise manually. | ||||
|     // If I try to chain promises, the transaction closes in browsers | ||||
|     // that use a promise polyfill (IE10/11). | ||||
|     new Promise((resolve, reject) => { | ||||
|       store.get(key).onsuccess = function() { | ||||
|         try { | ||||
|           store.put(updater(this.result), key); | ||||
|           resolve(promisifyRequest(store.transaction)); | ||||
|         } catch (err) { | ||||
|           reject(err); | ||||
|         } | ||||
|       }; | ||||
|     }) | ||||
|   )); | ||||
| } | ||||
| function del(key, customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => { | ||||
|     store.delete(key); | ||||
|     return promisifyRequest(store.transaction); | ||||
|   }); | ||||
| } | ||||
| function delMany(keys2, customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => { | ||||
|     keys2.forEach((key) => store.delete(key)); | ||||
|     return promisifyRequest(store.transaction); | ||||
|   }); | ||||
| } | ||||
| function clear(customStore = defaultGetStore()) { | ||||
|   return customStore("readwrite", (store) => { | ||||
|     store.clear(); | ||||
|     return promisifyRequest(store.transaction); | ||||
|   }); | ||||
| } | ||||
| function eachCursor(store, callback) { | ||||
|   store.openCursor().onsuccess = function() { | ||||
|     if (!this.result) | ||||
|       return; | ||||
|     callback(this.result); | ||||
|     this.result.continue(); | ||||
|   }; | ||||
|   return promisifyRequest(store.transaction); | ||||
| } | ||||
| function keys(customStore = defaultGetStore()) { | ||||
|   return customStore("readonly", (store) => { | ||||
|     if (store.getAllKeys) { | ||||
|       return promisifyRequest(store.getAllKeys()); | ||||
|     } | ||||
|     const items = []; | ||||
|     return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items); | ||||
|   }); | ||||
| } | ||||
| function values(customStore = defaultGetStore()) { | ||||
|   return customStore("readonly", (store) => { | ||||
|     if (store.getAll) { | ||||
|       return promisifyRequest(store.getAll()); | ||||
|     } | ||||
|     const items = []; | ||||
|     return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items); | ||||
|   }); | ||||
| } | ||||
| function entries(customStore = defaultGetStore()) { | ||||
|   return customStore("readonly", (store) => { | ||||
|     if (store.getAll && store.getAllKeys) { | ||||
|       return Promise.all([ | ||||
|         promisifyRequest(store.getAllKeys()), | ||||
|         promisifyRequest(store.getAll()) | ||||
|       ]).then(([keys2, values2]) => keys2.map((key, i) => [key, values2[i]])); | ||||
|     } | ||||
|     const items = []; | ||||
|     return customStore("readonly", (store2) => eachCursor(store2, (cursor) => items.push([cursor.key, cursor.value])).then(() => items)); | ||||
|   }); | ||||
| } | ||||
| var idb = Object.freeze({ | ||||
|   __proto__: null, | ||||
|   clear, | ||||
|   createStore, | ||||
|   del, | ||||
|   delMany, | ||||
|   entries, | ||||
|   get, | ||||
|   getMany, | ||||
|   keys, | ||||
|   promisifyRequest, | ||||
|   set, | ||||
|   setMany, | ||||
|   update, | ||||
|   values | ||||
| }); | ||||
| var CacheWorkspace = class { | ||||
|   constructor() { | ||||
|     __publicField(this, "storage"); | ||||
|     __publicField(this, "data", null); | ||||
|     this.storage = idb; | ||||
|   } | ||||
|   async get(name) { | ||||
|     const data = await get(name); | ||||
|     this.data = data; | ||||
|     return data; | ||||
|   } | ||||
|   async set(name, data) { | ||||
|     this.data = data; | ||||
|     await set(name, data); | ||||
|   } | ||||
|   async del(name) { | ||||
|     this.data = null; | ||||
|     await del(name); | ||||
|   } | ||||
|   /** | ||||
|    * Clear all values in the store. | ||||
|    */ | ||||
|   async clear() { | ||||
|     await clear(); | ||||
|   } | ||||
| }; | ||||
| var MyCache = class extends CacheWorkspace { | ||||
|   constructor(name) { | ||||
|     super(); | ||||
|     __publicField(this, "name"); | ||||
|     __publicField(this, "updatedAt"); | ||||
|     this.name = name || "my-cache"; | ||||
|   } | ||||
|   async getData() { | ||||
|     const cache = await super.get(this.name); | ||||
|     this.updatedAt = cache.updatedAt; | ||||
|     if (cache.expireTime && cache.expireTime < Date.now()) { | ||||
|       await super.del(this.name); | ||||
|       return {}; | ||||
|     } | ||||
|     return cache.data; | ||||
|   } | ||||
|   /** | ||||
|    * 设置缓存数据,默认过期时间为10天 | ||||
|    * @param data | ||||
|    * @param opts | ||||
|    */ | ||||
|   async setData(data, opts) { | ||||
|     const now = Date.now(); | ||||
|     const expireTime = now + ((opts == null ? void 0 : opts.expireTime) || 1e3 * 60 * 60 * 24 * 10); | ||||
|     const newData = { | ||||
|       data, | ||||
|       updatedAt: Date.now(), | ||||
|       expireTime | ||||
|     }; | ||||
|     await super.set(this.name, newData); | ||||
|     this.updatedAt = newData.updatedAt; | ||||
|   } | ||||
|   async del() { | ||||
|     await super.del(this.name); | ||||
|   } | ||||
| }; | ||||
| export { | ||||
|   CacheWorkspace, | ||||
|   MyCache | ||||
| }; | ||||
| //# sourceMappingURL=@kevisual_cache.js.map | ||||
							
								
								
									
										7
									
								
								node_modules/.vite/deps/@kevisual_cache.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/@kevisual_cache.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										357
									
								
								node_modules/.vite/deps/@kevisual_query.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								node_modules/.vite/deps/@kevisual_query.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,357 @@ | ||||
| import { | ||||
|   __publicField | ||||
| } from "./chunk-V6TY7KAL.js"; | ||||
|  | ||||
| // ../../node_modules/.pnpm/@kevisual+query@0.0.12_ws@8.18.1/node_modules/@kevisual/query/dist/query-browser.js | ||||
| var adapter = async (opts, overloadOpts) => { | ||||
|   const controller = new AbortController(); | ||||
|   const signal = controller.signal; | ||||
|   const timeout = opts.timeout || 6e4 * 3; | ||||
|   const timer = setTimeout(() => { | ||||
|     controller.abort(); | ||||
|   }, timeout); | ||||
|   return fetch(opts.url, { | ||||
|     method: "POST", | ||||
|     headers: { | ||||
|       "Content-Type": "application/json", | ||||
|       ...opts.headers | ||||
|     }, | ||||
|     body: JSON.stringify(opts.body), | ||||
|     signal, | ||||
|     ...overloadOpts | ||||
|   }).then((response) => { | ||||
|     const contentType = response.headers.get("Content-Type"); | ||||
|     if (contentType && contentType.includes("application/json")) { | ||||
|       return response.json(); | ||||
|     } else { | ||||
|       return response.text(); | ||||
|     } | ||||
|   }).catch((err) => { | ||||
|     if (err.name === "AbortError") { | ||||
|       console.log("Request timed out and was aborted"); | ||||
|     } | ||||
|     console.error(err); | ||||
|     return { | ||||
|       code: 500 | ||||
|     }; | ||||
|   }).finally(() => { | ||||
|     clearTimeout(timer); | ||||
|   }); | ||||
| }; | ||||
| var createStoreImpl = (createState) => { | ||||
|   let state; | ||||
|   const listeners = /* @__PURE__ */ new Set(); | ||||
|   const setState = (partial, replace) => { | ||||
|     const nextState = typeof partial === "function" ? partial(state) : partial; | ||||
|     if (!Object.is(nextState, state)) { | ||||
|       const previousState = state; | ||||
|       state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState); | ||||
|       listeners.forEach((listener) => listener(state, previousState)); | ||||
|     } | ||||
|   }; | ||||
|   const getState = () => state; | ||||
|   const getInitialState = () => initialState; | ||||
|   const subscribe = (listener) => { | ||||
|     listeners.add(listener); | ||||
|     return () => listeners.delete(listener); | ||||
|   }; | ||||
|   const api = { setState, getState, getInitialState, subscribe }; | ||||
|   const initialState = state = createState(setState, getState, api); | ||||
|   return api; | ||||
| }; | ||||
| var createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl; | ||||
| var parseWsUrl = (url) => { | ||||
|   try { | ||||
|     new URL(url); | ||||
|     return url; | ||||
|   } catch (e) { | ||||
|     const _url = new URL(url, location.origin); | ||||
|     if (_url.protocol === "http:") { | ||||
|       _url.protocol = "ws:"; | ||||
|     } | ||||
|     if (_url.protocol === "https:") { | ||||
|       _url.protocol = "wss:"; | ||||
|     } | ||||
|     return _url.href; | ||||
|   } | ||||
| }; | ||||
| var QueryWs = class { | ||||
|   constructor(opts) { | ||||
|     __publicField(this, "url"); | ||||
|     __publicField(this, "store"); | ||||
|     __publicField(this, "ws"); | ||||
|     const url = (opts == null ? void 0 : opts.url) || "/api/router"; | ||||
|     if (opts == null ? void 0 : opts.store) { | ||||
|       this.store = opts.store; | ||||
|     } else { | ||||
|       const store = createStore((set) => ({ | ||||
|         connected: false, | ||||
|         status: "connecting", | ||||
|         setConnected: (connected) => set({ connected }), | ||||
|         setStatus: (status) => set({ status }) | ||||
|       })); | ||||
|       this.store = store; | ||||
|     } | ||||
|     const wsUrl = parseWsUrl(url); | ||||
|     if ((opts == null ? void 0 : opts.ws) && opts.ws instanceof WebSocket) { | ||||
|       this.ws = opts.ws; | ||||
|     } else { | ||||
|       this.ws = new WebSocket(wsUrl); | ||||
|     } | ||||
|     this.connect(); | ||||
|   } | ||||
|   /** | ||||
|    * 连接 WebSocket | ||||
|    */ | ||||
|   async connect(opts) { | ||||
|     const store = this.store; | ||||
|     const connected = store.getState().connected; | ||||
|     if (connected) { | ||||
|       return Promise.resolve(true); | ||||
|     } | ||||
|     return new Promise((resolve, reject) => { | ||||
|       const ws = this.ws || new WebSocket(this.url); | ||||
|       const timeout = (opts == null ? void 0 : opts.timeout) || 5 * 60 * 1e3; | ||||
|       let timer = setTimeout(() => { | ||||
|         console.error("WebSocket 连接超时"); | ||||
|         reject("timeout"); | ||||
|       }, timeout); | ||||
|       ws.onopen = () => { | ||||
|         store.getState().setConnected(true); | ||||
|         store.getState().setStatus("connected"); | ||||
|         resolve(true); | ||||
|         clearTimeout(timer); | ||||
|       }; | ||||
|       ws.onclose = () => { | ||||
|         store.getState().setConnected(false); | ||||
|         store.getState().setStatus("disconnected"); | ||||
|         this.ws = null; | ||||
|       }; | ||||
|     }); | ||||
|   } | ||||
|   listenConnect(callback) { | ||||
|     const store = this.store; | ||||
|     const { connected } = store.getState(); | ||||
|     if (connected) { | ||||
|       callback(); | ||||
|       return; | ||||
|     } | ||||
|     const subscriptionOne = (selector, listener) => { | ||||
|       const unsubscribe = store.subscribe((newState, oldState) => { | ||||
|         if (selector(newState) !== selector(oldState)) { | ||||
|           listener(newState, oldState); | ||||
|           unsubscribe(); | ||||
|         } | ||||
|       }); | ||||
|       return unsubscribe; | ||||
|     }; | ||||
|     const cancel = subscriptionOne((state) => state.connected, () => { | ||||
|       callback(); | ||||
|     }); | ||||
|     return cancel; | ||||
|   } | ||||
|   onMessage(fn, opts) { | ||||
|     const ws = this.ws; | ||||
|     const isJson = (opts == null ? void 0 : opts.isJson) ?? true; | ||||
|     const selector = opts == null ? void 0 : opts.selector; | ||||
|     const parseIfJson = (data) => { | ||||
|       try { | ||||
|         return JSON.parse(data); | ||||
|       } catch (e) { | ||||
|         return data; | ||||
|       } | ||||
|     }; | ||||
|     const listener = (event) => { | ||||
|       const received = parseIfJson(event.data); | ||||
|       if (typeof received === "string" && !isJson) { | ||||
|         fn(received, event); | ||||
|       } else if (typeof received === "object" && isJson) { | ||||
|         fn(selector ? selector(received) : received, event); | ||||
|       } else ; | ||||
|     }; | ||||
|     ws.addEventListener("message", listener); | ||||
|     return () => { | ||||
|       ws.removeEventListener("message", listener); | ||||
|     }; | ||||
|   } | ||||
|   close() { | ||||
|     var _a; | ||||
|     const ws = this.ws; | ||||
|     const store = this.store; | ||||
|     (_a = ws == null ? void 0 : ws.close) == null ? void 0 : _a.call(ws); | ||||
|     this.ws = null; | ||||
|     store.getState().setConnected(false); | ||||
|     store.getState().setStatus("disconnected"); | ||||
|   } | ||||
|   send(data, opts) { | ||||
|     const ws = this.ws; | ||||
|     const isJson = (opts == null ? void 0 : opts.isJson) ?? true; | ||||
|     const wrapper = opts == null ? void 0 : opts.wrapper; | ||||
|     if (!ws || ws.readyState !== WebSocket.OPEN) { | ||||
|       console.error("WebSocket is not open"); | ||||
|       return; | ||||
|     } | ||||
|     if (isJson) { | ||||
|       ws.send(JSON.stringify(wrapper ? wrapper(data) : data)); | ||||
|     } else { | ||||
|       ws.send(data); | ||||
|     } | ||||
|   } | ||||
|   getOpen() { | ||||
|     if (!this.ws) { | ||||
|       return false; | ||||
|     } | ||||
|     return this.ws.readyState === WebSocket.OPEN; | ||||
|   } | ||||
| }; | ||||
| var setBaseResponse = (res) => { | ||||
|   res.success = res.code === 200; | ||||
|   res.showError = (fn) => { | ||||
|     if (!res.success && !res.noMsg) { | ||||
|       fn == null ? void 0 : fn(); | ||||
|     } | ||||
|   }; | ||||
| }; | ||||
| var Query = class { | ||||
|   constructor(opts) { | ||||
|     __publicField(this, "adapter"); | ||||
|     __publicField(this, "url"); | ||||
|     __publicField(this, "beforeRequest"); | ||||
|     __publicField(this, "afterResponse"); | ||||
|     __publicField(this, "headers"); | ||||
|     __publicField(this, "timeout"); | ||||
|     this.adapter = (opts == null ? void 0 : opts.adapter) || adapter; | ||||
|     this.url = (opts == null ? void 0 : opts.url) || "/api/router"; | ||||
|     this.headers = (opts == null ? void 0 : opts.headers) || { | ||||
|       "Content-Type": "application/json" | ||||
|     }; | ||||
|     this.timeout = (opts == null ? void 0 : opts.timeout) || 6e4 * 3; | ||||
|   } | ||||
|   /** | ||||
|    * 发送 get 请求,转到 post 请求 | ||||
|    *  T是请求类型自定义 | ||||
|    *  S是返回类型自定义 | ||||
|    * @param params 请求参数 | ||||
|    * @param options 请求配置 | ||||
|    * @returns 请求结果 | ||||
|    */ | ||||
|   async get(params, options) { | ||||
|     return this.post(params, options); | ||||
|   } | ||||
|   /** | ||||
|    * 发送 post 请求 | ||||
|    *  T是请求类型自定义 | ||||
|    *  S是返回类型自定义 | ||||
|    * @param body 请求体 | ||||
|    * @param options 请求配置 | ||||
|    * @returns 请求结果 | ||||
|    */ | ||||
|   async post(body, options) { | ||||
|     const url = (options == null ? void 0 : options.url) || this.url; | ||||
|     const headers = { ...this.headers, ...options == null ? void 0 : options.headers }; | ||||
|     const adapter2 = (options == null ? void 0 : options.adapter) || this.adapter; | ||||
|     const beforeRequest = (options == null ? void 0 : options.beforeRequest) || this.beforeRequest; | ||||
|     const afterResponse = (options == null ? void 0 : options.afterResponse) || this.afterResponse; | ||||
|     const timeout = (options == null ? void 0 : options.timeout) || this.timeout; | ||||
|     const req = { | ||||
|       url, | ||||
|       headers, | ||||
|       body, | ||||
|       timeout | ||||
|     }; | ||||
|     try { | ||||
|       if (beforeRequest) { | ||||
|         await beforeRequest(req); | ||||
|       } | ||||
|     } catch (e) { | ||||
|       console.error("request beforeFn error", e, req); | ||||
|       return { | ||||
|         code: 500, | ||||
|         success: false, | ||||
|         message: "api request beforeFn error", | ||||
|         showError: () => { | ||||
|         } | ||||
|       }; | ||||
|     } | ||||
|     return adapter2(req).then(async (res) => { | ||||
|       try { | ||||
|         setBaseResponse(res); | ||||
|         if (afterResponse) { | ||||
|           return await afterResponse(res, { | ||||
|             req, | ||||
|             res, | ||||
|             fetch: adapter2 | ||||
|           }); | ||||
|         } | ||||
|         return res; | ||||
|       } catch (e) { | ||||
|         console.error("request error", e, req); | ||||
|         return { | ||||
|           code: 500, | ||||
|           success: false, | ||||
|           message: "api request afterFn error", | ||||
|           showError: () => { | ||||
|           } | ||||
|         }; | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|   /** | ||||
|    * 请求前处理,设置请求前处理函数 | ||||
|    * @param fn 处理函数 | ||||
|    */ | ||||
|   before(fn) { | ||||
|     this.beforeRequest = fn; | ||||
|   } | ||||
|   /** | ||||
|    * 请求后处理,设置请求后处理函数 | ||||
|    * @param fn 处理函数 | ||||
|    */ | ||||
|   after(fn) { | ||||
|     this.afterResponse = fn; | ||||
|   } | ||||
| }; | ||||
| var QueryClient = class extends Query { | ||||
|   constructor(opts) { | ||||
|     super(opts); | ||||
|     __publicField(this, "tokenName"); | ||||
|     __publicField(this, "storage"); | ||||
|     __publicField(this, "token"); | ||||
|     // 默认不使用ws | ||||
|     __publicField(this, "qws"); | ||||
|     this.tokenName = (opts == null ? void 0 : opts.tokenName) || "token"; | ||||
|     this.storage = (opts == null ? void 0 : opts.storage) || localStorage; | ||||
|     this.beforeRequest = async (opts2) => { | ||||
|       const token = this.token || this.getToken(); | ||||
|       if (token) { | ||||
|         opts2.headers = { | ||||
|           ...opts2.headers, | ||||
|           Authorization: `Bearer ${token}` | ||||
|         }; | ||||
|       } | ||||
|       return opts2; | ||||
|     }; | ||||
|     if (opts == null ? void 0 : opts.io) { | ||||
|       this.createWs(); | ||||
|     } | ||||
|   } | ||||
|   createWs(opts) { | ||||
|     this.qws = new QueryWs({ url: this.url, ...opts }); | ||||
|   } | ||||
|   getToken() { | ||||
|     return this.storage.getItem(this.tokenName); | ||||
|   } | ||||
|   saveToken(token) { | ||||
|     this.storage.setItem(this.tokenName, token); | ||||
|   } | ||||
|   removeToken() { | ||||
|     this.storage.removeItem(this.tokenName); | ||||
|   } | ||||
| }; | ||||
| export { | ||||
|   Query, | ||||
|   QueryClient, | ||||
|   QueryWs, | ||||
|   adapter | ||||
| }; | ||||
| //# sourceMappingURL=@kevisual_query.js.map | ||||
							
								
								
									
										7
									
								
								node_modules/.vite/deps/@kevisual_query.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/@kevisual_query.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										153
									
								
								node_modules/.vite/deps/@kevisual_query_query.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								node_modules/.vite/deps/@kevisual_query_query.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,153 @@ | ||||
| import { | ||||
|   __publicField | ||||
| } from "./chunk-V6TY7KAL.js"; | ||||
|  | ||||
| // ../../node_modules/.pnpm/@kevisual+query@0.0.12_ws@8.18.1/node_modules/@kevisual/query/dist/query.js | ||||
| var adapter = async (opts, overloadOpts) => { | ||||
|   const controller = new AbortController(); | ||||
|   const signal = controller.signal; | ||||
|   const timeout = opts.timeout || 6e4 * 3; | ||||
|   const timer = setTimeout(() => { | ||||
|     controller.abort(); | ||||
|   }, timeout); | ||||
|   return fetch(opts.url, { | ||||
|     method: "POST", | ||||
|     headers: { | ||||
|       "Content-Type": "application/json", | ||||
|       ...opts.headers | ||||
|     }, | ||||
|     body: JSON.stringify(opts.body), | ||||
|     signal, | ||||
|     ...overloadOpts | ||||
|   }).then((response) => { | ||||
|     const contentType = response.headers.get("Content-Type"); | ||||
|     if (contentType && contentType.includes("application/json")) { | ||||
|       return response.json(); | ||||
|     } else { | ||||
|       return response.text(); | ||||
|     } | ||||
|   }).catch((err) => { | ||||
|     if (err.name === "AbortError") { | ||||
|       console.log("Request timed out and was aborted"); | ||||
|     } | ||||
|     console.error(err); | ||||
|     return { | ||||
|       code: 500 | ||||
|     }; | ||||
|   }).finally(() => { | ||||
|     clearTimeout(timer); | ||||
|   }); | ||||
| }; | ||||
| var setBaseResponse = (res) => { | ||||
|   res.success = res.code === 200; | ||||
|   res.showError = (fn) => { | ||||
|     if (!res.success && !res.noMsg) { | ||||
|       fn == null ? void 0 : fn(); | ||||
|     } | ||||
|   }; | ||||
| }; | ||||
| var Query = class { | ||||
|   constructor(opts) { | ||||
|     __publicField(this, "adapter"); | ||||
|     __publicField(this, "url"); | ||||
|     __publicField(this, "beforeRequest"); | ||||
|     __publicField(this, "afterResponse"); | ||||
|     __publicField(this, "headers"); | ||||
|     __publicField(this, "timeout"); | ||||
|     this.adapter = (opts == null ? void 0 : opts.adapter) || adapter; | ||||
|     this.url = (opts == null ? void 0 : opts.url) || "/api/router"; | ||||
|     this.headers = (opts == null ? void 0 : opts.headers) || { | ||||
|       "Content-Type": "application/json" | ||||
|     }; | ||||
|     this.timeout = (opts == null ? void 0 : opts.timeout) || 6e4 * 3; | ||||
|   } | ||||
|   /** | ||||
|    * 发送 get 请求,转到 post 请求 | ||||
|    *  T是请求类型自定义 | ||||
|    *  S是返回类型自定义 | ||||
|    * @param params 请求参数 | ||||
|    * @param options 请求配置 | ||||
|    * @returns 请求结果 | ||||
|    */ | ||||
|   async get(params, options) { | ||||
|     return this.post(params, options); | ||||
|   } | ||||
|   /** | ||||
|    * 发送 post 请求 | ||||
|    *  T是请求类型自定义 | ||||
|    *  S是返回类型自定义 | ||||
|    * @param body 请求体 | ||||
|    * @param options 请求配置 | ||||
|    * @returns 请求结果 | ||||
|    */ | ||||
|   async post(body, options) { | ||||
|     const url = (options == null ? void 0 : options.url) || this.url; | ||||
|     const headers = { ...this.headers, ...options == null ? void 0 : options.headers }; | ||||
|     const adapter2 = (options == null ? void 0 : options.adapter) || this.adapter; | ||||
|     const beforeRequest = (options == null ? void 0 : options.beforeRequest) || this.beforeRequest; | ||||
|     const afterResponse = (options == null ? void 0 : options.afterResponse) || this.afterResponse; | ||||
|     const timeout = (options == null ? void 0 : options.timeout) || this.timeout; | ||||
|     const req = { | ||||
|       url, | ||||
|       headers, | ||||
|       body, | ||||
|       timeout | ||||
|     }; | ||||
|     try { | ||||
|       if (beforeRequest) { | ||||
|         await beforeRequest(req); | ||||
|       } | ||||
|     } catch (e) { | ||||
|       console.error("request beforeFn error", e, req); | ||||
|       return { | ||||
|         code: 500, | ||||
|         success: false, | ||||
|         message: "api request beforeFn error", | ||||
|         showError: () => { | ||||
|         } | ||||
|       }; | ||||
|     } | ||||
|     return adapter2(req).then(async (res) => { | ||||
|       try { | ||||
|         setBaseResponse(res); | ||||
|         if (afterResponse) { | ||||
|           return await afterResponse(res, { | ||||
|             req, | ||||
|             res, | ||||
|             fetch: adapter2 | ||||
|           }); | ||||
|         } | ||||
|         return res; | ||||
|       } catch (e) { | ||||
|         console.error("request error", e, req); | ||||
|         return { | ||||
|           code: 500, | ||||
|           success: false, | ||||
|           message: "api request afterFn error", | ||||
|           showError: () => { | ||||
|           } | ||||
|         }; | ||||
|       } | ||||
|     }); | ||||
|   } | ||||
|   /** | ||||
|    * 请求前处理,设置请求前处理函数 | ||||
|    * @param fn 处理函数 | ||||
|    */ | ||||
|   before(fn) { | ||||
|     this.beforeRequest = fn; | ||||
|   } | ||||
|   /** | ||||
|    * 请求后处理,设置请求后处理函数 | ||||
|    * @param fn 处理函数 | ||||
|    */ | ||||
|   after(fn) { | ||||
|     this.afterResponse = fn; | ||||
|   } | ||||
| }; | ||||
| export { | ||||
|   Query, | ||||
|   adapter, | ||||
|   setBaseResponse | ||||
| }; | ||||
| //# sourceMappingURL=@kevisual_query_query.js.map | ||||
							
								
								
									
										7
									
								
								node_modules/.vite/deps/@kevisual_query_query.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/@kevisual_query_query.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										31
									
								
								node_modules/.vite/deps/_metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								node_modules/.vite/deps/_metadata.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| { | ||||
|   "hash": "7676c9c1", | ||||
|   "configHash": "073ff67a", | ||||
|   "lockfileHash": "7b5b51fa", | ||||
|   "browserHash": "6d161b56", | ||||
|   "optimized": { | ||||
|     "@kevisual/cache": { | ||||
|       "src": "../../../../../node_modules/.pnpm/@kevisual+cache@0.0.1_rollup@4.36.0_tslib@2.8.1_typescript@5.8.2/node_modules/@kevisual/cache/dist/cache.js", | ||||
|       "file": "@kevisual_cache.js", | ||||
|       "fileHash": "c8f5b09b", | ||||
|       "needsInterop": false | ||||
|     }, | ||||
|     "@kevisual/query": { | ||||
|       "src": "../../../../../node_modules/.pnpm/@kevisual+query@0.0.12_ws@8.18.1/node_modules/@kevisual/query/dist/query-browser.js", | ||||
|       "file": "@kevisual_query.js", | ||||
|       "fileHash": "54f36b5c", | ||||
|       "needsInterop": false | ||||
|     }, | ||||
|     "@kevisual/query/query": { | ||||
|       "src": "../../../../../node_modules/.pnpm/@kevisual+query@0.0.12_ws@8.18.1/node_modules/@kevisual/query/dist/query.js", | ||||
|       "file": "@kevisual_query_query.js", | ||||
|       "fileHash": "d243262a", | ||||
|       "needsInterop": false | ||||
|     } | ||||
|   }, | ||||
|   "chunks": { | ||||
|     "chunk-V6TY7KAL": { | ||||
|       "file": "chunk-V6TY7KAL.js" | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										8
									
								
								node_modules/.vite/deps/chunk-V6TY7KAL.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								node_modules/.vite/deps/chunk-V6TY7KAL.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| var __defProp = Object.defineProperty; | ||||
| var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; | ||||
| var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); | ||||
|  | ||||
| export { | ||||
|   __publicField | ||||
| }; | ||||
| //# sourceMappingURL=chunk-V6TY7KAL.js.map | ||||
							
								
								
									
										7
									
								
								node_modules/.vite/deps/chunk-V6TY7KAL.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								node_modules/.vite/deps/chunk-V6TY7KAL.js.map
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| { | ||||
|   "version": 3, | ||||
|   "sources": [], | ||||
|   "sourcesContent": [], | ||||
|   "mappings": "", | ||||
|   "names": [] | ||||
| } | ||||
							
								
								
									
										3
									
								
								node_modules/.vite/deps/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								node_modules/.vite/deps/package.json
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|   "type": "module" | ||||
| } | ||||
		Reference in New Issue
	
	Block a user