@@ -8,12 +8,12 @@ type WrappedPromise<T> = Promise<T> & {
88 * The promise must be wrapped with `wrapPromise` so that HighTable can render
99 * the state synchronously.
1010 */
11- export type AsyncRow = Record < string , WrappedPromise < any > >
11+ export type AsyncRow = Record < string , WrappedPromise < unknown > >
1212
1313/**
1414 * A row where each cell is a resolved value.
1515 */
16- export type Row = Record < string , any >
16+ export type Row = Record < string , unknown >
1717
1818/**
1919 * Streamable row data
@@ -26,8 +26,8 @@ export interface DataFrame {
2626 sortable ?: boolean
2727}
2828
29- export function resolvableRow ( header : string [ ] ) : { [ key : string ] : ResolvablePromise < any > } {
30- return Object . fromEntries ( header . map ( key => [ key , resolvablePromise < any > ( ) ] ) )
29+ export function resolvableRow ( header : string [ ] ) : Record < string , ResolvablePromise < unknown > > {
30+ return Object . fromEntries ( header . map ( key => [ key , resolvablePromise < unknown > ( ) ] ) )
3131}
3232
3333/**
@@ -38,7 +38,7 @@ export function resolvableRow(header: string[]): { [key: string]: ResolvableProm
3838export function asyncRows ( rows : AsyncRow [ ] | Promise < Row [ ] > , numRows : number , header : string [ ] ) : AsyncRow [ ] {
3939 if ( Array . isArray ( rows ) ) return rows
4040 // Make grid of resolvable promises
41- const wrapped = new Array ( numRows ) . fill ( null ) . map ( _ => resolvableRow ( header ) )
41+ const wrapped = new Array ( numRows ) . fill ( null ) . map ( ( ) => resolvableRow ( header ) )
4242 rows . then ( rows => {
4343 if ( rows . length !== numRows ) {
4444 console . warn ( `Expected ${ numRows } rows, got ${ rows . length } ` )
@@ -49,11 +49,12 @@ export function asyncRows(rows: AsyncRow[] | Promise<Row[]>, numRows: number, he
4949 wrapped [ i ] [ key ] . resolve ( row [ key ] )
5050 }
5151 }
52- } ) . catch ( error => {
52+ } ) . catch ( ( error : unknown ) => {
53+ const rejected = error instanceof Error ? error : new Error ( String ( error ) )
5354 // Reject all promises on error
5455 for ( let i = 0 ; i < numRows ; i ++ ) {
5556 for ( const key of header ) {
56- wrapped [ i ] [ key ] . reject ( error )
57+ wrapped [ i ] [ key ] . reject ( rejected )
5758 }
5859 }
5960 } )
@@ -71,9 +72,9 @@ export function wrapPromise<T>(promise: Promise<T> | T): WrappedPromise<T> {
7172 const wrapped : WrappedPromise < T > = promise . then ( resolved => {
7273 wrapped . resolved = resolved
7374 return resolved
74- } ) . catch ( rejected => {
75- wrapped . rejected = rejected
76- throw rejected
75+ } ) . catch ( ( error : unknown ) => {
76+ wrapped . rejected = error instanceof Error ? error : new Error ( String ( error ) )
77+ throw error
7778 } )
7879 return wrapped
7980}
@@ -105,7 +106,7 @@ export function resolvablePromise<T>(): ResolvablePromise<T> {
105106export function sortableDataFrame ( data : DataFrame ) : DataFrame {
106107 if ( data . sortable ) return data // already sortable
107108 // Fetch all rows and add __index__ column
108- let all : Promise < Row [ ] >
109+ let all : Promise < Row [ ] > | undefined
109110 return {
110111 ...data ,
111112 rows ( start : number , end : number , orderBy ?: string ) : AsyncRow [ ] | Promise < Row [ ] > {
0 commit comments