| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | 
							- 'use strict'
 
- var Client = require('./client')
 
- var defaults = require('./defaults')
 
- var Connection = require('./connection')
 
- var Pool = require('pg-pool')
 
- const { DatabaseError } = require('pg-protocol')
 
- const { escapeIdentifier, escapeLiteral } = require('./utils')
 
- const poolFactory = (Client) => {
 
-   return class BoundPool extends Pool {
 
-     constructor(options) {
 
-       super(options, Client)
 
-     }
 
-   }
 
- }
 
- var PG = function (clientConstructor) {
 
-   this.defaults = defaults
 
-   this.Client = clientConstructor
 
-   this.Query = this.Client.Query
 
-   this.Pool = poolFactory(this.Client)
 
-   this._pools = []
 
-   this.Connection = Connection
 
-   this.types = require('pg-types')
 
-   this.DatabaseError = DatabaseError
 
-   this.escapeIdentifier = escapeIdentifier
 
-   this.escapeLiteral = escapeLiteral
 
- }
 
- if (typeof process.env.NODE_PG_FORCE_NATIVE !== 'undefined') {
 
-   module.exports = new PG(require('./native'))
 
- } else {
 
-   module.exports = new PG(Client)
 
-   // lazy require native module...the native module may not have installed
 
-   Object.defineProperty(module.exports, 'native', {
 
-     configurable: true,
 
-     enumerable: false,
 
-     get() {
 
-       var native = null
 
-       try {
 
-         native = new PG(require('./native'))
 
-       } catch (err) {
 
-         if (err.code !== 'MODULE_NOT_FOUND') {
 
-           throw err
 
-         }
 
-       }
 
-       // overwrite module.exports.native so that getter is never called again
 
-       Object.defineProperty(module.exports, 'native', {
 
-         value: native,
 
-       })
 
-       return native
 
-     },
 
-   })
 
- }
 
 
  |