Provide schema from data providers

This commit is contained in:
Andrew Kingston 2021-03-18 15:53:25 +00:00
parent 788817d249
commit dc1f420163
1 changed files with 15 additions and 0 deletions

View File

@ -17,10 +17,13 @@
let loaded = false let loaded = false
let allRows = [] let allRows = []
let schema = {}
$: fetchData(dataSource) $: fetchData(dataSource)
$: filteredRows = filterRows(allRows, filter) $: filteredRows = filterRows(allRows, filter)
$: sortedRows = sortRows(filteredRows, sortColumn, sortOrder) $: sortedRows = sortRows(filteredRows, sortColumn, sortOrder)
$: rows = limitRows(sortedRows, limit) $: rows = limitRows(sortedRows, limit)
$: getSchema(dataSource)
$: actions = [ $: actions = [
{ {
type: ActionTypes.RefreshDatasource, type: ActionTypes.RefreshDatasource,
@ -30,6 +33,7 @@
] ]
$: dataContext = { $: dataContext = {
rows, rows,
schema,
rowsLength: rows.length, rowsLength: rows.length,
loading, loading,
loaded, loaded,
@ -79,6 +83,17 @@
} }
return rows.slice(0, numLimit) 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 = {}
}
}
</script> </script>
<Provider {actions} data={dataContext}> <Provider {actions} data={dataContext}>