import WebSqlPouchCore from 'pouchdb-adapter-websql-core';
import { jsExtend as extend } from 'pouchdb-utils';
import websql from 'websql';

function NodeWebSqlPouch(opts, callback) {
  var _opts = extend({
    websql: websql // pass node-websql in as our "openDatabase" function
  }, opts);

  WebSqlPouchCore.call(this, _opts, callback);
}

// overrides for normal WebSQL behavior in the browser
NodeWebSqlPouch.valid = function () {
  return true;
};
NodeWebSqlPouch.use_prefix = false; // no prefix necessary in Node

export default function (PouchDB) {
  PouchDB.adapter('websql', NodeWebSqlPouch, true);
}