import { ResponseMessage, SendMessage } from "../utils/ResponseUtils";
import { isFunctionAsync } from "../utils/Utils";
import {EventBusDemo} from "./EventBusDemo";

abstract class MessageEventBus extends EventBusDemo{
  crossExtension:boolean=false;
  getCurrentTabId(callback:Function){
    this.getCurrentTabs((tabs:any)=>{
      const tabId=tabs.length ? tabs[0].id: null
      if(!tabId){
        Promise.reject('未找到激活的tab')
      }
      callback(tabId)
    })
    return this;
  }
  getTabs(callback: Function, queryInfo?: chrome.tabs.QueryInfo): this {
    let query=Object.assign({},queryInfo)
    chrome.tabs.query(query, function(tabs){
      if(callback){
        callback(tabs);
      } 
    });
    return this
  }
  getCurrentTabs(callback: Function): this {
    return this.getTabs(callback,{active: true, currentWindow: true});
  }
}
export default MessageEventBus