From 4d3023a641dd3c9e3875acaeadb79db75294cdbd Mon Sep 17 00:00:00 2001 From: KoloMl Date: Sun, 16 Feb 2025 15:47:41 +0400 Subject: [PATCH] Display nulls and undefined values in the storage inspector properly --- src/components/debugging/StorageViewer.svelte | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/components/debugging/StorageViewer.svelte b/src/components/debugging/StorageViewer.svelte index fdccae6..145e16b 100644 --- a/src/components/debugging/StorageViewer.svelte +++ b/src/components/debugging/StorageViewer.svelte @@ -55,6 +55,39 @@ ? findDeepObject(targetStorage, path) : null; } + + /** + * Helper function to resolve type, including the null. + * @param {*} value Value to resolve type from. + * @return {string} Type of the value, including "null" for null. + */ + function resolveType(value) { + /** @type {string} */ + let typeName = typeof value; + + if (typeName === 'object' && value === null) { + typeName = 'null'; + } + + return typeName; + } + + /** + * Helper function to resolve value, including values like null or undefined. + * @param {*} value Value to resolve. + * @return {string} String representation of the value. + */ + function resolveValue(value) { + if (value === null) { + return "null"; + } + + if (value === undefined) { + return "undefined"; + } + + return value?.toString() ?? ''; + } @@ -77,7 +110,7 @@ {:else} - {key}: {typeof targetObject[key]} = {targetObject[key]} + {key}: {resolveType(targetObject[key])} = {resolveValue(targetObject[key])} {/if} {/each}