From ad2ffce986e39c21e3c0392c1227222bc16f4c38 Mon Sep 17 00:00:00 2001 From: Pavel Lang Date: Tue, 7 Jun 2016 23:02:07 +0200 Subject: [PATCH] pg.native returns null if pg-native is missing (#950) `require('pg').native` will be `null` and report error once to `stdout` when `pg-native` is missing. --- lib/index.js | 13 +++++++++++-- test/native/missing-native.js | 4 +--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/index.js b/lib/index.js index e7df427..9a7e193 100644 --- a/lib/index.js +++ b/lib/index.js @@ -75,7 +75,16 @@ if(typeof process.env.NODE_PG_FORCE_NATIVE != 'undefined') { //lazy require native module...the native module may not have installed module.exports.__defineGetter__("native", function() { delete module.exports.native; - module.exports.native = new PG(require('./native')); - return module.exports.native; + var native = null; + try { + native = new PG(require('./native')); + } catch (err) { + if (err.code !== 'MODULE_NOT_FOUND') { + throw err; + } + console.error(err.message); + } + module.exports.native = native; + return native; }); } diff --git a/test/native/missing-native.js b/test/native/missing-native.js index b13a631..775c618 100644 --- a/test/native/missing-native.js +++ b/test/native/missing-native.js @@ -3,6 +3,4 @@ var assert = require('assert'); -assert.throws(function() { - require('../../lib').native; -}); +assert.equal(require('../../lib').native, null);