index.js

/**
 * Plugin factory
 *
 * @param {string} pkgName - NPM package name
 * @returns {class}
 */
async function factory (pkgName) {
  const me = this

  /**
   * DoboKnex class
   *
   * @class
   */
  class DoboKnex extends this.app.pluginClass.base {
    static alias = 'dbknex'
    static dependencies = ['dobo']

    constructor () {
      super(pkgName, me.app)
      this.config = {
        connOptions: {
          compileSqlOnError: false
        },
        manticoresearch: {
          maxMatches: 1000
        }
      }
      this.drivers = [
        {
          name: 'better-sqlite3',
          adapter: 'better-sqlite3',
          returning: true
        },
        {
          name: 'cockroachdb',
          adapter: 'pg',
          returning: true
        },
        {
          name: 'mssql',
          adapter: 'tedious',
          returning: true
        },
        {
          name: 'mysql',
          adapter: 'mysql',
          returning: false
        },
        {
          name: 'mysql2',
          adapter: 'mysql2',
          returning: false
        },
        {
          name: 'oracle',
          adapter: 'oracle',
          returning: true
        },
        {
          name: 'oracledb',
          adapter: 'oracledb',
          returning: true
        },
        {
          name: 'pgnative',
          adapter: 'pg-native',
          returning: true
        },
        {
          name: 'postgres',
          adapter: 'pg',
          returning: true
        },
        {
          name: 'redshift',
          adapter: 'pg',
          returning: false
        },
        {
          name: 'sqlite3',
          adapter: 'sqlite3',
          returning: true
        },
        {
          name: 'manticoresearch',
          dialect: 'mysql',
          adapter: 'mysql',
          lowerCaseModel: true,
          returning: false
        }
      ]
    }
  }
  return DoboKnex
}

export default factory