@kevisual/query 0.0.39 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -35,12 +35,12 @@ const adapter = async (opts = {}, overloadOpts) => {
35
35
  }
36
36
  else {
37
37
  origin = window?.location?.origin || 'http://localhost:51515';
38
- url = new URL(opts.url, origin);
38
+ url = new URL(opts?.url || '', origin);
39
39
  }
40
40
  const isGet = method === 'GET';
41
41
  const oldSearchParams = url.searchParams;
42
42
  if (isGet) {
43
- let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts.body });
43
+ let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts?.params, ...opts?.body });
44
44
  url.search = searchParams.toString();
45
45
  }
46
46
  else {
@@ -69,11 +69,13 @@ const adapter = async (opts = {}, overloadOpts) => {
69
69
  body = opts.body; // 如果是文件上传,直接使用 FormData
70
70
  }
71
71
  else {
72
- headers = {
73
- 'Content-Type': 'application/json',
74
- ...headers,
75
- };
76
- body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
72
+ if (opts.body && typeof opts.body === 'object' && !(opts.body instanceof FormData)) {
73
+ headers = {
74
+ 'Content-Type': 'application/json',
75
+ ...headers,
76
+ };
77
+ body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
78
+ }
77
79
  }
78
80
  return fetch(url, {
79
81
  method: method.toUpperCase(),
@@ -180,6 +180,9 @@ declare class Query {
180
180
  */
181
181
  stop?: boolean;
182
182
  qws: QueryWs;
183
+ /**
184
+ * 默认是 /client/router或者 默认是 /api/router
185
+ */
183
186
  isClient: boolean;
184
187
  constructor(opts?: QueryOptions);
185
188
  setQueryWs(qws: QueryWs): void;
@@ -34,12 +34,12 @@ const adapter = async (opts = {}, overloadOpts) => {
34
34
  }
35
35
  else {
36
36
  origin = window?.location?.origin || 'http://localhost:51515';
37
- url = new URL(opts.url, origin);
37
+ url = new URL(opts?.url || '', origin);
38
38
  }
39
39
  const isGet = method === 'GET';
40
40
  const oldSearchParams = url.searchParams;
41
41
  if (isGet) {
42
- let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts.body });
42
+ let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts?.params, ...opts?.body });
43
43
  url.search = searchParams.toString();
44
44
  }
45
45
  else {
@@ -68,11 +68,13 @@ const adapter = async (opts = {}, overloadOpts) => {
68
68
  body = opts.body; // 如果是文件上传,直接使用 FormData
69
69
  }
70
70
  else {
71
- headers = {
72
- 'Content-Type': 'application/json',
73
- ...headers,
74
- };
75
- body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
71
+ if (opts.body && typeof opts.body === 'object' && !(opts.body instanceof FormData)) {
72
+ headers = {
73
+ 'Content-Type': 'application/json',
74
+ ...headers,
75
+ };
76
+ body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
77
+ }
76
78
  }
77
79
  return fetch(url, {
78
80
  method: method.toUpperCase(),
@@ -377,6 +379,9 @@ class Query {
377
379
  stop;
378
380
  // 默认不使用ws
379
381
  qws;
382
+ /**
383
+ * 默认是 /client/router或者 默认是 /api/router
384
+ */
380
385
  isClient = false;
381
386
  constructor(opts) {
382
387
  this.adapter = opts?.adapter || adapter;
@@ -386,7 +391,7 @@ class Query {
386
391
  'Content-Type': 'application/json',
387
392
  };
388
393
  this.timeout = opts?.timeout || 60000 * 3; // 默认超时时间为 60s * 3
389
- if (opts.beforeRequest) {
394
+ if (opts?.beforeRequest) {
390
395
  this.beforeRequest = opts.beforeRequest;
391
396
  }
392
397
  else {
package/dist/query.d.ts CHANGED
@@ -191,6 +191,9 @@ declare class Query {
191
191
  */
192
192
  stop?: boolean;
193
193
  qws: QueryWs;
194
+ /**
195
+ * 默认是 /client/router或者 默认是 /api/router
196
+ */
194
197
  isClient: boolean;
195
198
  constructor(opts?: QueryOptions);
196
199
  setQueryWs(qws: QueryWs): void;
package/dist/query.js CHANGED
@@ -34,12 +34,12 @@ const adapter = async (opts = {}, overloadOpts) => {
34
34
  }
35
35
  else {
36
36
  origin = window?.location?.origin || 'http://localhost:51515';
37
- url = new URL(opts.url, origin);
37
+ url = new URL(opts?.url || '', origin);
38
38
  }
39
39
  const isGet = method === 'GET';
40
40
  const oldSearchParams = url.searchParams;
41
41
  if (isGet) {
42
- let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts.body });
42
+ let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts?.params, ...opts?.body });
43
43
  url.search = searchParams.toString();
44
44
  }
45
45
  else {
@@ -68,11 +68,13 @@ const adapter = async (opts = {}, overloadOpts) => {
68
68
  body = opts.body; // 如果是文件上传,直接使用 FormData
69
69
  }
70
70
  else {
71
- headers = {
72
- 'Content-Type': 'application/json',
73
- ...headers,
74
- };
75
- body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
71
+ if (opts.body && typeof opts.body === 'object' && !(opts.body instanceof FormData)) {
72
+ headers = {
73
+ 'Content-Type': 'application/json',
74
+ ...headers,
75
+ };
76
+ body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
77
+ }
76
78
  }
77
79
  return fetch(url, {
78
80
  method: method.toUpperCase(),
@@ -180,6 +182,9 @@ class Query {
180
182
  stop;
181
183
  // 默认不使用ws
182
184
  qws;
185
+ /**
186
+ * 默认是 /client/router或者 默认是 /api/router
187
+ */
183
188
  isClient = false;
184
189
  constructor(opts) {
185
190
  this.adapter = opts?.adapter || adapter;
@@ -189,7 +194,7 @@ class Query {
189
194
  'Content-Type': 'application/json',
190
195
  };
191
196
  this.timeout = opts?.timeout || 60000 * 3; // 默认超时时间为 60s * 3
192
- if (opts.beforeRequest) {
197
+ if (opts?.beforeRequest) {
193
198
  this.beforeRequest = opts.beforeRequest;
194
199
  }
195
200
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kevisual/query",
3
- "version": "0.0.39",
3
+ "version": "0.0.40",
4
4
  "main": "dist/query-browser.js",
5
5
  "private": false,
6
6
  "type": "module",
@@ -23,10 +23,10 @@
23
23
  "devDependencies": {
24
24
  "@rollup/plugin-node-resolve": "^16.0.3",
25
25
  "@rollup/plugin-typescript": "^12.3.0",
26
- "rollup": "^4.55.3",
26
+ "rollup": "^4.57.1",
27
27
  "rollup-plugin-dts": "^6.3.0",
28
28
  "typescript": "^5.9.3",
29
- "zustand": "^5.0.10"
29
+ "zustand": "^5.0.11"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"
package/src/adapter.ts CHANGED
@@ -61,12 +61,12 @@ export const adapter = async (opts: AdapterOpts = {}, overloadOpts?: RequestInit
61
61
  url = new URL(opts.url);
62
62
  } else {
63
63
  origin = window?.location?.origin || 'http://localhost:51515';
64
- url = new URL(opts.url, origin);
64
+ url = new URL(opts?.url || '', origin);
65
65
  }
66
66
  const isGet = method === 'GET';
67
67
  const oldSearchParams = url.searchParams;
68
68
  if (isGet) {
69
- let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts.body } as SimpleObject);
69
+ let searchParams = new URLSearchParams({ ...Object.fromEntries(oldSearchParams), ...opts?.params, ...opts?.body } as SimpleObject);
70
70
  url.search = searchParams.toString();
71
71
  } else {
72
72
  const params = {
@@ -92,11 +92,13 @@ export const adapter = async (opts: AdapterOpts = {}, overloadOpts?: RequestInit
92
92
  } else if (isPostFile) {
93
93
  body = opts.body as FormData; // 如果是文件上传,直接使用 FormData
94
94
  } else {
95
- headers = {
96
- 'Content-Type': 'application/json',
97
- ...headers,
98
- };
99
- body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
95
+ if (opts.body && typeof opts.body === 'object' && !(opts.body instanceof FormData)) {
96
+ headers = {
97
+ 'Content-Type': 'application/json',
98
+ ...headers,
99
+ };
100
+ body = JSON.stringify(opts.body); // 否则将对象转换为 JSON 字符串
101
+ }
100
102
  }
101
103
  return fetch(url, {
102
104
  method: method.toUpperCase(),
package/src/query.ts CHANGED
@@ -105,6 +105,9 @@ export class Query {
105
105
  stop?: boolean;
106
106
  // 默认不使用ws
107
107
  qws: QueryWs;
108
+ /**
109
+ * 默认是 /client/router或者 默认是 /api/router
110
+ */
108
111
  isClient = false;
109
112
  constructor(opts?: QueryOptions) {
110
113
  this.adapter = opts?.adapter || adapter;
@@ -114,7 +117,7 @@ export class Query {
114
117
  'Content-Type': 'application/json',
115
118
  };
116
119
  this.timeout = opts?.timeout || 60000 * 3; // 默认超时时间为 60s * 3
117
- if (opts.beforeRequest) {
120
+ if (opts?.beforeRequest) {
118
121
  this.beforeRequest = opts.beforeRequest;
119
122
  } else {
120
123
  this.beforeRequest = async (opts) => {