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 @@