feat(version-bridge): Make version bridge inspectable, to ease debugging

Signed-off-by: Gustaf Räntilä <g.rantila@gmail.com>
This commit is contained in:
Gustaf Räntilä
2022-10-28 14:54:30 +02:00
parent cb9b8797e7
commit 81f8f95585
@@ -36,9 +36,27 @@ export function createVersionedValueMap<
Versions extends { [version: number]: unknown },
>(versions: Versions): VersionedValue<Versions> {
Object.freeze(versions);
return {
const versionedValue: VersionedValue<Versions> = {
atVersion(version) {
return versions[version];
},
};
Object.defineProperty(versionedValue, '$value', {
configurable: false,
enumerable: true,
get() {
const highest = Object.keys(versions)
.map(v => parseInt(v, 10))
.sort((a, b) => b - a)[0];
return versions[highest];
},
});
Object.defineProperty(versionedValue, '$map', {
configurable: false,
enumerable: true,
get() {
return versions;
},
});
return versionedValue;
}