From 02559972ca7cd79866220745e2d522ac3a96ca58 Mon Sep 17 00:00:00 2001 From: efossas Date: Mon, 14 May 2018 17:41:55 -0600 Subject: [PATCH] set transform function to accept same number arguments every time include only one simple function to test transform feature --- papaparse.js | 6 +---- tests/test-cases.js | 55 ++++----------------------------------------- 2 files changed, 5 insertions(+), 56 deletions(-) diff --git a/papaparse.js b/papaparse.js index 21c7521..0e66ed0 100755 --- a/papaparse.js +++ b/papaparse.js @@ -1032,11 +1032,7 @@ function parseTransform(field, value) { if (_config.transform) { - if (_config.transform.length === 1) { - return _config.transform(value); - } else { - return _config.transform(field,value); - } + return _config.transform(value,field); } else { return value; } diff --git a/tests/test-cases.js b/tests/test-cases.js index 0e7bdeb..0cd8ce8 100644 --- a/tests/test-cases.js +++ b/tests/test-cases.js @@ -873,62 +873,15 @@ var PARSE_TESTS = [ } }, { - description: "Custom transform function converts all true and false strings to booleans regardless of case", - input: '"true","false","T","F"\r\n"TRUE","FALSE","True","False"', + description: "Custom transform function is applied to values", + input: 'A,B,C\r\nd,e,f', config: { transform: function(value) { - if(typeof value === "string" && value.toLowerCase() === "true") return true; - if(typeof value === "string" && value.toLowerCase() === "false") return false; - return value; + return value.toLowerCase(); } }, expected: { - data: [[true,false,"T","F"], [true, false, true, false]], - errors: [] - } - }, - { - description: "Custom transform function converts leading zero strings to number and empty strings to NULL", - input: '001,002,003\r\n,null,undefined', - config: { - transform: function(value) { - if ((/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i).test(value)) { - return Number.parseFloat(value); - } else if (value === "") { - return null; - } - return value; - } - }, - expected: { - data: [[1,2,3], [null,"null","undefined"]], - errors: [] - } - }, - { - description: "Custom transform function uses cache to determine whether to act on column", - input: 'A,B,C\r\n1,2,3\r\n4,5,6', - config: { - transform: function(field,value) { - if (!this.transformCache) { - this.transformCache = {}; - } else if (this.transformCache[field] === true) { - return value + ".0"; - } else if (this.transformCache[field] === false) { - return value; - } - - if (field > 0) { - this.transformCache[field] = true; - return value + ".0"; - } else { - this.transformCache[field] = false; - return value; - } - } - }, - expected: { - data: [["A","B.0","C.0"], ["1","2.0","3.0"], ["4","5.0","6.0"]], + data: [["a","b","c"], ["d","e","f"]], errors: [] } },