@readme/httpsnippet 10.0.2 → 10.0.4

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.
@@ -3227,36 +3227,28 @@ var urlsession = {
3227
3227
  const opts = {
3228
3228
  indent: " ",
3229
3229
  pretty: true,
3230
- timeout: "10",
3230
+ timeout: 10,
3231
3231
  ...options
3232
3232
  };
3233
3233
  const { push, blank, join } = new CodeBuilder({ indent: opts.indent });
3234
- const req = {
3235
- hasHeaders: false,
3236
- hasBody: false
3237
- };
3238
3234
  push("import Foundation");
3239
- push("#if canImport(FoundationNetworking)");
3240
- push(" import FoundationNetworking");
3241
- push("#endif");
3242
- if (Object.keys(allHeaders).length) {
3243
- req.hasHeaders = true;
3244
- blank();
3245
- push(literalDeclaration("headers", allHeaders, opts));
3246
- }
3247
- if (postData.text || postData.jsonObj || postData.params) {
3248
- req.hasBody = true;
3235
+ blank();
3236
+ const hasBody = postData.text || postData.jsonObj || postData.params;
3237
+ if (hasBody) {
3249
3238
  switch (postData.mimeType) {
3250
3239
  case "application/x-www-form-urlencoded":
3251
- blank();
3252
3240
  if (postData.params?.length) {
3253
- const [head, ...tail] = postData.params;
3254
- push(`${tail.length > 0 ? "var" : "let"} postData = Data("${head.name}=${head.value}".utf8)`);
3255
- tail.forEach(({ name, value }) => {
3256
- push(`postData.append(Data("&${name}=${value}".utf8))`);
3257
- });
3258
- } else {
3259
- req.hasBody = false;
3241
+ const parameters = postData.params.map((p) => `"${p.name}": "${p.value}"`);
3242
+ if (opts.pretty) {
3243
+ push("let parameters = [");
3244
+ parameters.forEach((param) => push(`${param},`, 1));
3245
+ push("]");
3246
+ } else {
3247
+ push(`let parameters = [${parameters.join(", ")}]`);
3248
+ }
3249
+ push('let joinedParameters = parameters.map { "\\($0.key)=\\($0.value)" }.joined(separator: "&")');
3250
+ push("let postData = Data(joinedParameters.utf8)");
3251
+ blank();
3260
3252
  }
3261
3253
  break;
3262
3254
  case "application/json":
@@ -3264,6 +3256,7 @@ var urlsession = {
3264
3256
  push(`${literalDeclaration("parameters", postData.jsonObj, opts)} as [String : Any]`);
3265
3257
  blank();
3266
3258
  push("let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])");
3259
+ blank();
3267
3260
  }
3268
3261
  break;
3269
3262
  case "multipart/form-data":
@@ -3272,17 +3265,13 @@ var urlsession = {
3272
3265
  push(`let boundary = "${postData.boundary}"`);
3273
3266
  blank();
3274
3267
  push('var body = ""');
3275
- push("var error: NSError? = nil");
3276
3268
  push("for param in parameters {");
3277
3269
  push('let paramName = param["name"]!', 1);
3278
3270
  push('body += "--\\(boundary)\\r\\n"', 1);
3279
3271
  push('body += "Content-Disposition:form-data; name=\\"\\(paramName)\\""', 1);
3280
3272
  push('if let filename = param["fileName"] {', 1);
3281
3273
  push('let contentType = param["content-type"]!', 2);
3282
- push("let fileContent = String(contentsOfFile: filename, encoding: String.Encoding.utf8)", 2);
3283
- push("if (error != nil) {", 2);
3284
- push("print(error as Any)", 3);
3285
- push("}", 2);
3274
+ push("let fileContent = try String(contentsOfFile: filename, encoding: .utf8)", 2);
3286
3275
  push('body += "; filename=\\"\\(filename)\\"\\r\\n"', 2);
3287
3276
  push('body += "Content-Type: \\(contentType)\\r\\n\\r\\n"', 2);
3288
3277
  push("body += fileContent", 2);
@@ -3290,13 +3279,15 @@ var urlsession = {
3290
3279
  push('body += "\\r\\n\\r\\n\\(paramValue)"', 2);
3291
3280
  push("}", 1);
3292
3281
  push("}");
3282
+ blank();
3283
+ push("let postData = Data(body.utf8)");
3284
+ blank();
3293
3285
  break;
3294
3286
  default:
3295
- blank();
3296
3287
  push(`let postData = Data("${postData.text}".utf8)`);
3288
+ blank();
3297
3289
  }
3298
3290
  }
3299
- blank();
3300
3291
  push(`let url = URL(string: "${uriObj.href}")!`);
3301
3292
  const queries = queryObj ? Object.entries(queryObj) : [];
3302
3293
  if (queries.length < 1) {
@@ -3309,11 +3300,11 @@ var urlsession = {
3309
3300
  const value = query[1];
3310
3301
  switch (Object.prototype.toString.call(value)) {
3311
3302
  case "[object String]":
3312
- push(`${opts.indent}URLQueryItem(name: "${key}", value: "${value}"),`);
3303
+ push(`URLQueryItem(name: "${key}", value: "${value}"),`, 1);
3313
3304
  break;
3314
3305
  case "[object Array]":
3315
3306
  value.forEach((val) => {
3316
- push(`${opts.indent}URLQueryItem(name: "${key}", value: "${val}"),`);
3307
+ push(`URLQueryItem(name: "${key}", value: "${val}"),`, 1);
3317
3308
  });
3318
3309
  break;
3319
3310
  }
@@ -3324,16 +3315,16 @@ var urlsession = {
3324
3315
  push("var request = URLRequest(url: components.url!)");
3325
3316
  }
3326
3317
  push(`request.httpMethod = "${method}"`);
3327
- if (req.hasHeaders) {
3328
- push("request.allHTTPHeaderFields = headers");
3318
+ push(`request.timeoutInterval = ${opts.timeout}`);
3319
+ if (Object.keys(allHeaders).length) {
3320
+ push(`request.allHTTPHeaderFields = ${literalRepresentation3(allHeaders, opts)}`);
3329
3321
  }
3330
- if (req.hasBody) {
3322
+ if (hasBody) {
3331
3323
  push("request.httpBody = postData");
3332
3324
  }
3333
3325
  blank();
3334
3326
  push("let (data, response) = try await URLSession.shared.data(for: request)");
3335
3327
  push("print(String(decoding: data, as: UTF8.self))");
3336
- blank();
3337
3328
  return join();
3338
3329
  }
3339
3330
  };
@@ -3465,4 +3456,4 @@ var addTargetClient = (targetId, client) => {
3465
3456
 
3466
3457
  export { addClientPlugin, addTarget, addTargetClient, getHeaderName, isClient, isTarget, targets };
3467
3458
  //# sourceMappingURL=out.js.map
3468
- //# sourceMappingURL=chunk-ZPGGGDJK.js.map
3459
+ //# sourceMappingURL=chunk-CSDAGXA2.js.map