query add cacel request
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@kevisual/query", |   "name": "@kevisual/query", | ||||||
|   "version": "0.0.16", |   "version": "0.0.17", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
|   "module": "dist/index.js", |   "module": "dist/index.js", | ||||||
|   "types": "dist/index.d.ts", |   "types": "dist/index.d.ts", | ||||||
|   | |||||||
| @@ -1,9 +1,9 @@ | |||||||
| import { adapter } from './adapter.ts'; | import { adapter } from './adapter.ts'; | ||||||
| import { QueryWs, QueryWsOpts } from './ws.ts'; | import { QueryWs, QueryWsOpts } from './ws.ts'; | ||||||
| import { Query } from './query.ts'; | import { Query } from './query.ts'; | ||||||
| import { BaseQuery } from './query.ts'; | import { BaseQuery, wrapperError } from './query.ts'; | ||||||
|  |  | ||||||
| export { QueryOpts, QueryWs, Query, QueryWsOpts, adapter, BaseQuery }; | export { QueryOpts, QueryWs, Query, QueryWsOpts, adapter, BaseQuery, wrapperError }; | ||||||
|  |  | ||||||
| export type { DataOpts, Result, Data } from './query.ts'; | export type { DataOpts, Result, Data } from './query.ts'; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										44
									
								
								src/query.ts
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								src/query.ts
									
									
									
									
									
								
							| @@ -10,7 +10,7 @@ export type Fn = (opts: { | |||||||
|   body?: Record<string, any>; |   body?: Record<string, any>; | ||||||
|   [key: string]: any; |   [key: string]: any; | ||||||
|   timeout?: number; |   timeout?: number; | ||||||
| }) => Promise<Record<string, any>>; | }) => Promise<Record<string, any> | false>; | ||||||
|  |  | ||||||
| export type QueryOpts = { | export type QueryOpts = { | ||||||
|   url?: string; |   url?: string; | ||||||
| @@ -66,6 +66,18 @@ export const setBaseResponse = (res: Result) => { | |||||||
|     } |     } | ||||||
|   }; |   }; | ||||||
| }; | }; | ||||||
|  | export const wrapperError = ({ code, message }: { code?: number; message?: string }) => { | ||||||
|  |   const result = { | ||||||
|  |     code: code || 500, | ||||||
|  |     success: false, | ||||||
|  |     message: message || 'api request error', | ||||||
|  |     showError: (fn?: () => void) => { | ||||||
|  |       // | ||||||
|  |     }, | ||||||
|  |     noMsg: true, | ||||||
|  |   }; | ||||||
|  |   return result; | ||||||
|  | }; | ||||||
| /** | /** | ||||||
|  * const query = new Query(); |  * const query = new Query(); | ||||||
|  * const res = await query.post({ |  * const res = await query.post({ | ||||||
| @@ -137,16 +149,24 @@ export class Query { | |||||||
|     }; |     }; | ||||||
|     try { |     try { | ||||||
|       if (_beforeRequest) { |       if (_beforeRequest) { | ||||||
|         await _beforeRequest(req); |         const res = await _beforeRequest(req); | ||||||
|  |         if (res === false) { | ||||||
|  |           return wrapperError({ | ||||||
|  |             code: 500, | ||||||
|  |             message: 'request is cancel', | ||||||
|  |             // @ts-ignore | ||||||
|  |             req: req, | ||||||
|  |           }); | ||||||
|  |         } | ||||||
|       } |       } | ||||||
|     } catch (e) { |     } catch (e) { | ||||||
|       console.error('request beforeFn error', e, req); |       console.error('request beforeFn error', e, req); | ||||||
|       return { |       return wrapperError({ | ||||||
|         code: 500, |         code: 500, | ||||||
|         success: false, |  | ||||||
|         message: 'api request beforeFn error', |         message: 'api request beforeFn error', | ||||||
|         showError: () => {}, |         // @ts-ignore | ||||||
|       }; |         req: req, | ||||||
|  |       }); | ||||||
|     } |     } | ||||||
|     if (this.stop) { |     if (this.stop) { | ||||||
|       const that = this; |       const that = this; | ||||||
| @@ -177,13 +197,13 @@ export class Query { | |||||||
|  |  | ||||||
|         return res; |         return res; | ||||||
|       } catch (e) { |       } catch (e) { | ||||||
|         console.error('request error', e, req); |         console.error('request afterFn error', e, req); | ||||||
|         return { |         return wrapperError({ | ||||||
|           code: 500, |           code: 500, | ||||||
|           success: false, |  | ||||||
|           message: 'api request afterFn error', |           message: 'api request afterFn error', | ||||||
|           showError: () => {}, |           // @ts-ignore | ||||||
|         }; |           req: req, | ||||||
|  |         }); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| @@ -205,7 +225,7 @@ export class Query { | |||||||
|  |  | ||||||
| export { adapter }; | export { adapter }; | ||||||
|  |  | ||||||
| export class BaseQuery<T extends Query> { | export class BaseQuery<T extends Query = Query> { | ||||||
|   query: T; |   query: T; | ||||||
|   constructor({ query }: { query: T }) { |   constructor({ query }: { query: T }) { | ||||||
|     this.query = query; |     this.query = query; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user