From 81f8f95585845905ea7e1ca7232bb86bbebe7d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustaf=20R=C3=A4ntil=C3=A4?= Date: Fri, 28 Oct 2022 14:54:30 +0200 Subject: [PATCH] feat(version-bridge): Make version bridge inspectable, to ease debugging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gustaf Räntilä --- .../version-bridge/src/lib/VersionedValue.ts | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/version-bridge/src/lib/VersionedValue.ts b/packages/version-bridge/src/lib/VersionedValue.ts index b7c2153e38..cc8ae2aeae 100644 --- a/packages/version-bridge/src/lib/VersionedValue.ts +++ b/packages/version-bridge/src/lib/VersionedValue.ts @@ -36,9 +36,27 @@ export function createVersionedValueMap< Versions extends { [version: number]: unknown }, >(versions: Versions): VersionedValue { Object.freeze(versions); - return { + const versionedValue: VersionedValue = { 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; }