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.
package/lib/runtime/index.js
CHANGED
|
@@ -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": "
|
|
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": "
|
|
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"]);
|
package/lib/runtime/index.js.map
CHANGED
|
@@ -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
|
@@ -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
|
});
|
package/src/runtime/index.ts
CHANGED
|
@@ -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":
|
|
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":
|
|
142
|
+
"Content-Type": ensureFormContentType(
|
|
143
|
+
String(headers?.["Content-Type"]),
|
|
144
|
+
),
|
|
127
145
|
},
|
|
128
146
|
};
|
|
129
147
|
},
|