Skip to content

Commit d298c8a

Browse files
refactor: change deserialization to prioritize most recent (#122)
1 parent 811f627 commit d298c8a

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/persistence/deserialization/deserialization-manager.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('Deserialization manager', () => {
2929
expect(deserializer.deserialize).toHaveBeenCalledTimes(1);
3030
});
3131

32-
test('uses first matching deserializer', () => {
32+
test('uses most recently registered matching deserializer', () => {
3333
const firstDeserializer = createDeserializerMatchingNumber(5);
3434
const secondDeserializer = createDeserializerMatchingNumber(6);
3535
const thirdDeserializer = createDeserializerMatchingNumber(6);
@@ -41,9 +41,9 @@ describe('Deserialization manager', () => {
4141

4242
expect(firstDeserializer.deserialize).not.toHaveBeenCalled();
4343

44-
expect(secondDeserializer.deserialize).toHaveBeenCalledTimes(1);
44+
expect(thirdDeserializer.deserialize).toHaveBeenCalledTimes(1);
4545

46-
expect(thirdDeserializer.deserialize).not.toHaveBeenCalled();
46+
expect(secondDeserializer.deserialize).not.toHaveBeenCalled();
4747
});
4848

4949
test('throws error if no matching deserializer found', () => {

src/persistence/deserialization/deserialization-manager.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ export class DeserializationManager {
1313
public constructor(private readonly logger: Logger) {}
1414

1515
/**
16-
* Adds a new deserialier to the lookup path for deserialization
16+
* Adds a new deserialier to the lookup path for deserialization with highest priority
1717
*/
1818
public registerDeserializer<TSerialized extends JsonPrimitive = JsonPrimitive, TDeserialized = unknown>(
1919
deserializer: Deserializer<TSerialized, TDeserialized>
2020
): void {
21-
this.deserializers.push(deserializer as Deserializer);
21+
this.deserializers.unshift(deserializer as Deserializer);
2222
}
2323

2424
/**

0 commit comments

Comments
 (0)