oazapfts 4.7.4 → 4.7.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.
@@ -97,6 +97,18 @@ function runtime(defaults) {
97
97
  return res;
98
98
  });
99
99
  }
100
+ /* TODO: maybe we want to get rid of this checks (ensureJsonContentType & ensureFormContentType)
101
+ in a future major release (ref https://github.com/oazapfts/oazapfts/pull/456) */
102
+ function ensureJsonContentType(contentTypeHeader) {
103
+ return (contentTypeHeader === null || contentTypeHeader === void 0 ? void 0 : contentTypeHeader.match(/\bjson\b/i))
104
+ ? contentTypeHeader
105
+ : "application/json";
106
+ }
107
+ function ensureFormContentType(contentTypeHeader) {
108
+ return (contentTypeHeader === null || contentTypeHeader === void 0 ? void 0 : contentTypeHeader.startsWith("application/x-www-form-urlencoded"))
109
+ ? contentTypeHeader
110
+ : "application/x-www-form-urlencoded";
111
+ }
100
112
  return {
101
113
  ok: __1.ok,
102
114
  fetchText,
@@ -104,11 +116,11 @@ function runtime(defaults) {
104
116
  fetchBlob,
105
117
  json(_a) {
106
118
  var { body, headers } = _a, req = __rest(_a, ["body", "headers"]);
107
- return Object.assign(Object.assign(Object.assign({}, req), (body != null && { body: JSON.stringify(body) })), { headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }) });
119
+ return Object.assign(Object.assign(Object.assign({}, req), (body != null && { body: JSON.stringify(body) })), { headers: Object.assign(Object.assign({}, headers), { "Content-Type": ensureJsonContentType(String(headers === null || headers === void 0 ? void 0 : headers["Content-Type"])) }) });
108
120
  },
109
121
  form(_a) {
110
122
  var { body, headers } = _a, req = __rest(_a, ["body", "headers"]);
111
- return Object.assign(Object.assign(Object.assign({}, req), (body != null && { body: qs.form(body) })), { headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/x-www-form-urlencoded" }) });
123
+ return Object.assign(Object.assign(Object.assign({}, req), (body != null && { body: qs.form(body) })), { headers: Object.assign(Object.assign({}, headers), { "Content-Type": ensureFormContentType(String(headers === null || headers === void 0 ? void 0 : headers["Content-Type"])) }) });
112
124
  },
113
125
  multipart(_a) {
114
126
  var { body } = _a, req = __rest(_a, ["body"]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
@@ -86,5 +86,19 @@ describe("request", () => {
86
86
  expect(err).toBeInstanceOf(__1.HttpError);
87
87
  expect((_a = err === null || err === void 0 ? void 0 : err.headers) === null || _a === void 0 ? void 0 : _a.get("x-request-id")).toBe("1234");
88
88
  }));
89
+ it("should allow 'Content-Type' header to be customized", () => __awaiter(void 0, void 0, void 0, function* () {
90
+ const jsonUTF8ContentType = "application/json; charset=UTF-8";
91
+ const formUTF8ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
92
+ const jsonResponse = oazapfts.json({
93
+ body: { value: "body value" },
94
+ headers: { "Content-Type": jsonUTF8ContentType },
95
+ });
96
+ const formResponse = oazapfts.form({
97
+ body: { value: "body value" },
98
+ headers: { "Content-Type": formUTF8ContentType },
99
+ });
100
+ expect(jsonResponse.headers["Content-Type"]).toEqual(jsonUTF8ContentType);
101
+ expect(formResponse.headers["Content-Type"]).toEqual(formUTF8ContentType);
102
+ }));
89
103
  });
90
104
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/runtime/index.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA8B;AAC9B,2BAAoC;AAEpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEtC,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC;IACvB,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,OAAO;IACb,OAAO,EAAE;QACP,GAAG,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,SAAS;KACjC;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,CAAM,CAAC;IAEX,SAAS,CAAC,GAAG,EAAE;QACb,CAAC,GAAG,MAAa,CAAC;QAClB,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAS,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEzD,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAErD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAS,EAAE;QAChE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAEvC,MAAM,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE;YAC9B,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,WAAkB;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAS,EAAE;;QAC/C,MAAM,EAAE,GAAG,GAAG,EAAE,CACd,IAAA,MAAE,EACA,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE;YACxB,KAAK,EAAE,GAAS,EAAE;gBAChB,OAAO,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACtB,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC,CAAA;SACF,CAAC,CACH,CAAC;QAEJ,IAAI,OAAO,CAAC;QACZ,IAAI,GAA0B,CAAC;QAC/B,IAAI;YACF,MAAM,EAAE,EAAE,CAAC;SACZ;QAAC,OAAO,CAAC,EAAE;YACV,GAAG,GAAG,CAAc,CAAC;YACrB,OAAO,GAAG,IAAI,CAAC;SAChB;QAED,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,aAAS,CAAC,CAAC;QACtC,MAAM,CAAC,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,0CAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/runtime/index.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oazapfts",
3
- "version": "4.7.4",
3
+ "version": "4.7.5",
4
4
  "description": "OpenApi TypeScript client generator",
5
5
  "main": "lib/index.js",
6
6
  "bin": {
@@ -66,4 +66,22 @@ describe("request", () => {
66
66
  expect(err).toBeInstanceOf(HttpError);
67
67
  expect(err?.headers?.get("x-request-id")).toBe("1234");
68
68
  });
69
+
70
+ it("should allow 'Content-Type' header to be customized", async () => {
71
+ const jsonUTF8ContentType = "application/json; charset=UTF-8";
72
+ const formUTF8ContentType =
73
+ "application/x-www-form-urlencoded; charset=UTF-8";
74
+
75
+ const jsonResponse = oazapfts.json({
76
+ body: { value: "body value" },
77
+ headers: { "Content-Type": jsonUTF8ContentType },
78
+ });
79
+ const formResponse = oazapfts.form({
80
+ body: { value: "body value" },
81
+ headers: { "Content-Type": formUTF8ContentType },
82
+ });
83
+
84
+ expect(jsonResponse.headers["Content-Type"]).toEqual(jsonUTF8ContentType);
85
+ expect(formResponse.headers["Content-Type"]).toEqual(formUTF8ContentType);
86
+ });
69
87
  });
@@ -100,6 +100,20 @@ export function runtime(defaults: RequestOpts) {
100
100
  return res;
101
101
  }
102
102
 
103
+ /* TODO: maybe we want to get rid of this checks (ensureJsonContentType & ensureFormContentType)
104
+ in a future major release (ref https://github.com/oazapfts/oazapfts/pull/456) */
105
+ function ensureJsonContentType(contentTypeHeader: string) {
106
+ return contentTypeHeader?.match(/\bjson\b/i)
107
+ ? contentTypeHeader
108
+ : "application/json";
109
+ }
110
+
111
+ function ensureFormContentType(contentTypeHeader: string) {
112
+ return contentTypeHeader?.startsWith("application/x-www-form-urlencoded")
113
+ ? contentTypeHeader
114
+ : "application/x-www-form-urlencoded";
115
+ }
116
+
103
117
  return {
104
118
  ok,
105
119
  fetchText,
@@ -112,7 +126,9 @@ export function runtime(defaults: RequestOpts) {
112
126
  ...(body != null && { body: JSON.stringify(body) }),
113
127
  headers: {
114
128
  ...headers,
115
- "Content-Type": "application/json",
129
+ "Content-Type": ensureJsonContentType(
130
+ String(headers?.["Content-Type"]),
131
+ ),
116
132
  },
117
133
  };
118
134
  },
@@ -123,7 +139,9 @@ export function runtime(defaults: RequestOpts) {
123
139
  ...(body != null && { body: qs.form(body) }),
124
140
  headers: {
125
141
  ...headers,
126
- "Content-Type": "application/x-www-form-urlencoded",
142
+ "Content-Type": ensureFormContentType(
143
+ String(headers?.["Content-Type"]),
144
+ ),
127
145
  },
128
146
  };
129
147
  },