Skip to content

Commit 8e1a8cf

Browse files
committed
Ensures cloning is only done in json-message-converter.
1 parent a059576 commit 8e1a8cf

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@apaq/leap-http",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"description": "",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/http/client/rest-template.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { RestOperations } from "./rest-operations";
99
import { HttpMessageConverter } from "../converter/http-message-converter";
1010
import { JsonMessageConverter } from "../converter/json-message-converter";
1111
import { DefaultErrorHandler } from "../../errors/default-error-handler";
12-
import structuredClone from '@ungap/structured-clone';
1312

1413
export class RestTemplate implements RestOperations {
1514

@@ -27,7 +26,7 @@ export class RestTemplate implements RestOperations {
2726

2827
public async exchange(uri: string, method: HttpMethod, entity?: RequestEntity): Promise<ResponseEntity> {
2928
const converter = await this.selectWriteConverter(entity?.body);
30-
const output = await converter?.write(structuredClone(entity.body)) ?? undefined
29+
const output = await converter?.write(entity.body) ?? undefined
3130

3231
const finalHeaders = new Headers();
3332
entity?.headers?.forEach((value, key) => finalHeaders.append(key, value));

src/http/converter/json-message-converter.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { DateToStringConverter } from "./date-to-string-converter";
33
import { StringToDateConverter } from "./string-to-date-converter";
44
import { PropertyMapper } from "./property-mapper";
55
import { DateConversionConfig } from "./date-conversion-config";
6+
import structuredClone from '@ungap/structured-clone';
67

78
export class JsonMessageConverter implements HttpMessageConverter {
89

@@ -32,6 +33,9 @@ export class JsonMessageConverter implements HttpMessageConverter {
3233
}
3334

3435
write<T>(data: T): Promise<{ headers: Headers, body: BodyInit }> {
36+
// Clone before we make changes to object
37+
data = structuredClone(data);
38+
3539
PropertyMapper.mapValues(this.dateToStringConverter, data);
3640

3741
const headers = new Headers();

0 commit comments

Comments
 (0)