diff --git a/lib/utils.js b/lib/utils.js index e28c26a..d102d63 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -103,6 +103,10 @@ function normalizeQueryConfig (config, values, callback) { } module.exports = { - prepareValue: prepareValue, + prepareValue: function prepareValueWrapper (value) { + //this ensures that extra arguments do not get passed into prepareValue + //by accident, eg: from calling values.map(utils.prepareValue) + return prepareValue(value); + }, normalizeQueryConfig: normalizeQueryConfig }; diff --git a/test/unit/utils-tests.js b/test/unit/utils-tests.js index 116dfdd..b0e3e91 100644 --- a/test/unit/utils-tests.js +++ b/test/unit/utils-tests.js @@ -171,3 +171,14 @@ test('prepareValue: objects with circular toPostgres rejected', function() { } throw new Error("Expected prepareValue to throw exception"); }); + +test('prepareValue: can safely be used to map an array of values including those with toPostgres functions', function() { + var customType = { + toPostgres: function() { + return "zomgcustom!"; + } + }; + var values = [1, "test", customType] + var out = values.map(utils.prepareValue) + assert.deepEqual(out, [1, "test", "zomgcustom!"]) +})