@defjs/core 0.0.0-test-0006 → 0.0.0-test-0007

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.
package/dist/index.d.ts CHANGED
@@ -69,11 +69,17 @@ export declare function makeResponse<R>(options: MakeResponseOptions<R>): HttpRe
69
69
  export type InterceptorFn = (req: HttpRequest, next: HttpHandler) => Promise<HttpResponse<unknown>>;
70
70
  export type HttpResponseType = "arraybuffer" | "blob" | "json" | "text";
71
71
  export interface HttpProgressEvent {
72
- /** 表示 Progress 所关联的资源是否具有可以计算的长度。否则,Progress.total 属性将是一个无意义的值 */
72
+ /**
73
+ * Indicates whether the resources associated with Progress have a computable length.
74
+ * Otherwise, the Progress.total attribute will be a meaningless value.
75
+ */
73
76
  readonly lengthComputable: boolean;
74
- /** 表示底层的进程已经执行的工作量 */
77
+ /** Indicates the workload of the underlying process. */
75
78
  readonly loaded: number;
76
- /** 正在处理或者传输的数据的总大小. 如果 Progress.lengthComputable 属性是 false,这个值是没有意义的并且应该被忽略 */
79
+ /**
80
+ * The total size of the data being processed or transmitted.
81
+ * If the Progress.lengthComputable attribute is false, this value is meaningless and should be ignored.
82
+ */
77
83
  readonly total: number;
78
84
  }
79
85
  export type HttpProgressFn = (value: HttpProgressEvent) => void;
package/dist/index.js CHANGED
@@ -176,10 +176,30 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
176
176
  function inputIsObject(input2) {
177
177
  return typeof input2 === "object" && input2 !== null;
178
178
  }
179
+ function appendValue(sp, key, value) {
180
+ if (Array.isArray(value)) {
181
+ for (const v of value) {
182
+ sp.append(key, String(v));
183
+ }
184
+ } else {
185
+ sp.set(key, String(value));
186
+ }
187
+ return sp;
188
+ }
189
+ function setValue(sp, key, value) {
190
+ if (Array.isArray(value)) {
191
+ for (const v of value) {
192
+ sp.set(key, String(v));
193
+ }
194
+ } else {
195
+ sp.set(key, String(value));
196
+ }
197
+ return sp;
198
+ }
179
199
  if (isField(fieldOrFieldGroup)) {
180
- const params = new Map;
181
- const queryParams = new URLSearchParams;
182
- const headers = new Headers;
200
+ let params;
201
+ let queryParams;
202
+ let headers;
183
203
  let body = undefined;
184
204
  const fieldValue = input ?? fieldOrFieldGroup();
185
205
  const meta = getFieldMetadata(fieldOrFieldGroup);
@@ -196,30 +216,28 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
196
216
  if (!aliasName) {
197
217
  throwAliaNotSet();
198
218
  }
199
- queryParams.append(aliasName, String(fieldValue));
219
+ queryParams = appendValue(new URLSearchParams, aliasName, fieldValue);
200
220
  break;
201
221
  }
202
222
  case 3 /* Param */: {
203
223
  if (!aliasName) {
204
224
  throwAliaNotSet();
205
225
  }
206
- params.set(aliasName, String(fieldValue));
226
+ params = setValue(new Map, aliasName, fieldValue);
207
227
  break;
208
228
  }
209
229
  case 4 /* Header */: {
210
230
  if (!aliasName) {
211
231
  throwAliaNotSet();
212
232
  }
213
- headers.set(aliasName, String(fieldValue));
233
+ headers = appendValue(new Headers, aliasName, fieldValue);
214
234
  break;
215
235
  }
216
236
  case 5 /* Form */: {
217
237
  if (!aliasName) {
218
238
  throwAliaNotSet();
219
239
  }
220
- const form = new FormData;
221
- form.append(aliasName, String(fieldValue));
222
- body = form;
240
+ body = appendValue(new FormData, aliasName, fieldValue);
223
241
  break;
224
242
  }
225
243
  case 6 /* Body */:
@@ -227,17 +245,19 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
227
245
  break;
228
246
  }
229
247
  }
230
- request.endpoint = fillUrl(request.endpoint, params);
248
+ if (params) {
249
+ request.endpoint = fillUrl(request.endpoint, params);
250
+ }
231
251
  request.queryParams = queryParams;
232
252
  request.headers = headers;
233
253
  request.body = body;
234
254
  return;
235
255
  }
236
256
  if (isFieldGroup(fieldOrFieldGroup) && inputIsObject(input)) {
237
- const params = new Map;
238
- const queryParams = new URLSearchParams;
239
- const headers = new Headers;
240
- const formData = new FormData;
257
+ let params = new Map;
258
+ let queryParams = new URLSearchParams;
259
+ let headers = new Headers;
260
+ let formData = new FormData;
241
261
  const json = {};
242
262
  let body = undefined;
243
263
  for (const [propertyKey, field3] of Object.entries(fieldOrFieldGroup)) {
@@ -257,16 +277,16 @@ async function fillRequestFromField(request, fieldOrFieldGroup, input) {
257
277
  });
258
278
  break;
259
279
  case 2 /* Query */:
260
- queryParams.append(valueKey, value);
280
+ queryParams = appendValue(queryParams, valueKey, value);
261
281
  break;
262
282
  case 3 /* Param */:
263
- params.set(valueKey, value);
283
+ params = setValue(params, valueKey, value);
264
284
  break;
265
285
  case 4 /* Header */:
266
- headers.set(valueKey, value);
286
+ headers = appendValue(headers, valueKey, value);
267
287
  break;
268
288
  case 5 /* Form */:
269
- formData.append(valueKey, value);
289
+ formData = appendValue(formData, valueKey, value);
270
290
  break;
271
291
  case 6 /* Body */:
272
292
  body = value;
@@ -324,7 +344,7 @@ async function doRequest(...args) {
324
344
  }
325
345
  const clientOptions = getClientConfig(options?.client || getGlobalClient());
326
346
  const req = {
327
- host: clientOptions?.host || "",
347
+ host: clientOptions?.host,
328
348
  method: requestOptions.method,
329
349
  endpoint: requestOptions.endpoint,
330
350
  queryParams: new URLSearchParams,
package/package.json CHANGED
@@ -1,25 +1,25 @@
1
1
  {
2
- "name": "@defjs/core",
3
- "version": "0.0.0-test-0006",
4
- "type": "module",
5
- "scripts": {
6
- "build": "bun run ./scripts/build.ts",
7
- "test": "bun test",
8
- "lint": "biome check",
9
- "lint:fix": "biome check --write",
10
- "pub": "npm publish"
11
- },
12
- "peerDependencies": {
13
- "typescript": "^5.0"
14
- },
15
- "files": ["dist"],
16
- "module": "dist/index.js",
17
- "typings": "dist/index.d.ts",
18
- "exports": {
19
- "./package.json": "./package.json",
20
- ".": {
21
- "types": "./index.d.ts",
22
- "default": "./index.js"
23
- }
24
- }
2
+ "name": "@defjs/core",
3
+ "version": "0.0.0-test-0007",
4
+ "type": "module",
5
+ "scripts": {
6
+ "build": "bun run ./scripts/build.ts",
7
+ "test": "bun test",
8
+ "lint": "biome check",
9
+ "lint:fix": "biome check --write",
10
+ "pub": "npm publish"
11
+ },
12
+ "peerDependencies": {
13
+ "typescript": "^5.0"
14
+ },
15
+ "files": ["dist"],
16
+ "module": "dist/index.js",
17
+ "typings": "dist/index.d.ts",
18
+ "exports": {
19
+ "./package.json": "./package.json",
20
+ ".": {
21
+ "types": "./index.d.ts",
22
+ "default": "./index.js"
23
+ }
24
+ }
25
25
  }