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 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 = {}
}
}
</script>
<Provider {actions} data={dataContext}>