import { EventEmitter } from 'events' ; import { TabularCallback , TabularHolder , TabularLoaderOptions } from './types' ; class DataAdapter extends EventEmitter { private tabular ? : TabularCallback ; private tabularOptions ? : TabularLoaderOptions ; public setTabularLoader ( callback , options = { } ) { this . tabular = callback ; this . tabularOptions = options ; this . emit ( 'change' , 'tabular' ) ; } public getTabular ( ) { if ( ! this . tabular || ! this . tabularOptions ) { return Promise . resolve ( { data : null , options : { } } ) ; } const options = this . tabularOptions ; return Promise . resolve ( this . tabular ( ) ) . then ( ( data ) => ( { data , options } ) ) ; } } export { DataAdapter } ;