From 7699de490abc6ff24a3f0f1ac00eddb27e33340e Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Fri, 19 Nov 2021 15:13:49 +0100 Subject: [PATCH] docs: update --- docs/app.vue | 8 +++--- docs/pages/components/[component].vue | 38 ++++++++++++++++----------- docs/pages/index.vue | 8 ++++-- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/docs/app.vue b/docs/app.vue index 9d07a3d4..56253ca9 100644 --- a/docs/app.vue +++ b/docs/app.vue @@ -3,11 +3,11 @@
@@ -61,7 +63,7 @@ const component = nuxtApp.vueApp.component(is) const { props: componentProps } = await component.__asyncLoader() const refProps = Object.entries(componentProps).map(([key, prop]) => { - let value = prop.default + let value = typeof prop.default === 'function' ? prop.default() : prop.default let type = prop.type if (Array.isArray(type)) { type = type[0].name @@ -75,12 +77,14 @@ const refProps = Object.entries(componentProps).map(([key, prop]) => { values = JSON.parse(result.replace(/'/g, '"')) } - if (type === 'Boolean') { - value = value === 'true' - } else if (type === 'String') { - value = value === 'undefined' ? '' : value - value = value === 'null' ? '' : value - value = (value || '').replace(/^'(.*)'$/, '$1') + if (value) { + if (type === 'Boolean') { + value = value === 'true' + } else if (type === 'String') { + value = value.replace(/^'(.*)'$/, '$1') + } else if (type === 'Array') { + value = JSON.stringify(value) + } } return { @@ -95,7 +99,11 @@ const props = ref(refProps) const boundProps = computed(() => { const bound = {} for (const prop of props.value) { - bound[prop.key] = prop.value + try { + bound[prop.key] = prop.type === 'Array' ? JSON.parse(prop.value) : prop.value + } catch (e) { + continue + } } return bound }) diff --git a/docs/pages/index.vue b/docs/pages/index.vue index 70184bba..ed7f2447 100644 --- a/docs/pages/index.vue +++ b/docs/pages/index.vue @@ -1,7 +1,11 @@