/* global chrome */

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  sendResponse(request);
});

const map = {
  executeScript () {
    chrome.runtime.sendMessage({ method: 'executeScript' }, response => {
      console.log(JSON.stringify(response));
    });
  },
  registerContentScripts () {
    chrome.runtime.sendMessage({ method: 'registerContentScripts' }, response => {
      console.log(JSON.stringify(response));
    });
  },
  insertCSS () {
    chrome.runtime.sendMessage({ method: 'insertCSS' }, response => {
      console.log(JSON.stringify(response));
    });
  },
  globalParams () {
    chrome.runtime.sendMessage({ method: 'globalParams' }, response => {
      console.log(JSON.stringify(response));
    });
  }
};

const dispatchTest = (event) => {
  const { method, args = [] } = JSON.parse(event.data);
  map[method](...args);
};

window.addEventListener('message', dispatchTest, false);