refactor: replace rfdc with native structuredClone

This commit is contained in:
2024-04-03 11:14:47 +02:00
committed by Rainer Killinger
parent 622481a3c9
commit 53c3d0ba0c
13 changed files with 33 additions and 70 deletions

View File

@@ -76,8 +76,9 @@ export class ConnectorClient extends Client {
* @param thing Thing to remove references from
*/
static removeReferences<THING extends SCThings>(thing: THING): SCAssociatedThingWithoutReferences<THING> {
const thingWithoutReferences = JSON.parse(JSON.stringify(thing));
const thingWithoutReferences = structuredClone(thing);
// @ts-expect-error it still thinks it's a thing with references
delete thingWithoutReferences.origin;
// iterate over all properties
@@ -134,7 +135,7 @@ export class ConnectorClient extends Client {
}
}
return thingWithoutReferences as SCAssociatedThingWithoutReferences<THING>;
return thingWithoutReferences as unknown as SCAssociatedThingWithoutReferences<THING>;
}
/**

View File

@@ -378,7 +378,7 @@ describe('ConnectorClient', function () {
);
for (const testInstance of testInstances) {
const checkInstance = JSON.parse(JSON.stringify(testInstance));
const checkInstance = structuredClone(testInstance);
const testInstanceWithoutReferences = ConnectorClient.removeReferences(testInstance);
expect(doesContainThings(testInstanceWithoutReferences)).to.be.equal(