From dc1f420163ad7976da897b97127374a74797e037 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 18 Mar 2021 15:53:25 +0000 Subject: [PATCH] Provide schema from data providers --- .../standard-components/src/DataProvider.svelte | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/standard-components/src/DataProvider.svelte b/packages/standard-components/src/DataProvider.svelte index d134ec8816..93d884ad5c 100644 --- a/packages/standard-components/src/DataProvider.svelte +++ b/packages/standard-components/src/DataProvider.svelte @@ -17,10 +17,13 @@ let loaded = false let allRows = [] + let schema = {} + $: fetchData(dataSource) $: filteredRows = filterRows(allRows, filter) $: sortedRows = sortRows(filteredRows, sortColumn, sortOrder) $: rows = limitRows(sortedRows, limit) + $: getSchema(dataSource) $: actions = [ { type: ActionTypes.RefreshDatasource, @@ -30,6 +33,7 @@ ] $: dataContext = { rows, + schema, rowsLength: rows.length, loading, loaded, @@ -79,6 +83,17 @@ } return rows.slice(0, numLimit) } + + const getSchema = async dataSource => { + if (dataSource?.schema) { + schema = dataSource.schema + } else if (dataSource?.tableId) { + const definition = await API.fetchTableDefinition(dataSource.tableId) + schema = definition?.schema ?? {} + } else { + schema = {} + } + }