@readme/httpsnippet 10.0.3 → 10.0.5

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.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { reducer } from './chunk-KT7MO6Z4.js';
2
- import { targets, getHeaderName } from './chunk-ZPGGGDJK.js';
3
- export { addClientPlugin, addTarget, addTargetClient } from './chunk-ZPGGGDJK.js';
2
+ import { targets, getHeaderName } from './chunk-QBICEG2V.js';
3
+ export { addClientPlugin, addTarget, addTargetClient } from './chunk-QBICEG2V.js';
4
4
  import './chunk-Y7NI4MMY.js';
5
5
  import { parse, format } from 'url';
6
6
  import { stringify } from 'qs';
@@ -3292,43 +3292,36 @@ var urlsession = {
3292
3292
  const opts = {
3293
3293
  indent: " ",
3294
3294
  pretty: true,
3295
- timeout: "10",
3295
+ timeout: 10,
3296
3296
  ...options
3297
3297
  };
3298
3298
  const { push, blank, join } = new CodeBuilder({ indent: opts.indent });
3299
- const req = {
3300
- hasHeaders: false,
3301
- hasBody: false
3302
- };
3303
3299
  push("import Foundation");
3304
- push("#if canImport(FoundationNetworking)");
3305
- push(" import FoundationNetworking");
3306
- push("#endif");
3307
- if (Object.keys(allHeaders).length) {
3308
- req.hasHeaders = true;
3309
- blank();
3310
- push(literalDeclaration("headers", allHeaders, opts));
3311
- }
3312
- if (postData.text || postData.jsonObj || postData.params) {
3313
- req.hasBody = true;
3300
+ blank();
3301
+ const hasBody = postData.text || postData.jsonObj || postData.params;
3302
+ if (hasBody) {
3314
3303
  switch (postData.mimeType) {
3315
3304
  case "application/x-www-form-urlencoded":
3316
- blank();
3317
3305
  if (postData.params?.length) {
3318
- const [head, ...tail] = postData.params;
3319
- push(`${tail.length > 0 ? "var" : "let"} postData = Data("${head.name}=${head.value}".utf8)`);
3320
- tail.forEach(({ name, value }) => {
3321
- push(`postData.append(Data("&${name}=${value}".utf8))`);
3322
- });
3323
- } else {
3324
- req.hasBody = false;
3306
+ const parameters = postData.params.map((p) => `"${p.name}": "${p.value}"`);
3307
+ if (opts.pretty) {
3308
+ push("let parameters = [");
3309
+ parameters.forEach((param) => push(`${param},`, 1));
3310
+ push("]");
3311
+ } else {
3312
+ push(`let parameters = [${parameters.join(", ")}]`);
3313
+ }
3314
+ push('let joinedParameters = parameters.map { "\\($0.key)=\\($0.value)" }.joined(separator: "&")');
3315
+ push("let postData = Data(joinedParameters.utf8)");
3316
+ blank();
3325
3317
  }
3326
3318
  break;
3327
3319
  case "application/json":
3328
3320
  if (postData.jsonObj) {
3329
- push(`${literalDeclaration("parameters", postData.jsonObj, opts)} as [String : Any]`);
3321
+ push(`${literalDeclaration("parameters", postData.jsonObj, opts)} as [String : Any?]`);
3330
3322
  blank();
3331
3323
  push("let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])");
3324
+ blank();
3332
3325
  }
3333
3326
  break;
3334
3327
  case "multipart/form-data":
@@ -3337,17 +3330,13 @@ var urlsession = {
3337
3330
  push(`let boundary = "${postData.boundary}"`);
3338
3331
  blank();
3339
3332
  push('var body = ""');
3340
- push("var error: NSError? = nil");
3341
3333
  push("for param in parameters {");
3342
3334
  push('let paramName = param["name"]!', 1);
3343
3335
  push('body += "--\\(boundary)\\r\\n"', 1);
3344
3336
  push('body += "Content-Disposition:form-data; name=\\"\\(paramName)\\""', 1);
3345
3337
  push('if let filename = param["fileName"] {', 1);
3346
- push('let contentType = param["content-type"]!', 2);
3347
- push("let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)", 2);
3348
- push("if (error != nil) {", 2);
3349
- push("print(error as Any)", 3);
3350
- push("}", 2);
3338
+ push('let contentType = param["contentType"]!', 2);
3339
+ push("let fileContent = try String(contentsOfFile: filename, encoding: .utf8)", 2);
3351
3340
  push('body += "; filename=\\"\\(filename)\\"\\r\\n"', 2);
3352
3341
  push('body += "Content-Type: \\(contentType)\\r\\n\\r\\n"', 2);
3353
3342
  push("body += fileContent", 2);
@@ -3355,13 +3344,15 @@ var urlsession = {
3355
3344
  push('body += "\\r\\n\\r\\n\\(paramValue)"', 2);
3356
3345
  push("}", 1);
3357
3346
  push("}");
3347
+ blank();
3348
+ push("let postData = Data(body.utf8)");
3349
+ blank();
3358
3350
  break;
3359
3351
  default:
3360
- blank();
3361
3352
  push(`let postData = Data("${postData.text}".utf8)`);
3353
+ blank();
3362
3354
  }
3363
3355
  }
3364
- blank();
3365
3356
  push(`let url = URL(string: "${uriObj.href}")!`);
3366
3357
  const queries = queryObj ? Object.entries(queryObj) : [];
3367
3358
  if (queries.length < 1) {
@@ -3374,11 +3365,11 @@ var urlsession = {
3374
3365
  const value = query[1];
3375
3366
  switch (Object.prototype.toString.call(value)) {
3376
3367
  case "[object String]":
3377
- push(`${opts.indent}URLQueryItem(name: "${key}", value: "${value}"),`);
3368
+ push(`URLQueryItem(name: "${key}", value: "${value}"),`, 1);
3378
3369
  break;
3379
3370
  case "[object Array]":
3380
3371
  value.forEach((val) => {
3381
- push(`${opts.indent}URLQueryItem(name: "${key}", value: "${val}"),`);
3372
+ push(`URLQueryItem(name: "${key}", value: "${val}"),`, 1);
3382
3373
  });
3383
3374
  break;
3384
3375
  }
@@ -3389,16 +3380,16 @@ var urlsession = {
3389
3380
  push("var request = URLRequest(url: components.url!)");
3390
3381
  }
3391
3382
  push(`request.httpMethod = "${method}"`);
3392
- if (req.hasHeaders) {
3393
- push("request.allHTTPHeaderFields = headers");
3383
+ push(`request.timeoutInterval = ${opts.timeout}`);
3384
+ if (Object.keys(allHeaders).length) {
3385
+ push(`request.allHTTPHeaderFields = ${literalRepresentation3(allHeaders, opts)}`);
3394
3386
  }
3395
- if (req.hasBody) {
3387
+ if (hasBody) {
3396
3388
  push("request.httpBody = postData");
3397
3389
  }
3398
3390
  blank();
3399
- push("let (data, response) = try await URLSession.shared.data(for: request)");
3391
+ push("let (data, _) = try await URLSession.shared.data(for: request)");
3400
3392
  push("print(String(decoding: data, as: UTF8.self))");
3401
- blank();
3402
3393
  return join();
3403
3394
  }
3404
3395
  };