|
|
|
@ -193,7 +193,21 @@
@@ -193,7 +193,21 @@
|
|
|
|
|
function CsvToJson(_input, _config) |
|
|
|
|
{ |
|
|
|
|
_config = _config || {}; |
|
|
|
|
_config.dynamicTyping = new DynamicTypingConfig(_config.dynamicTyping); |
|
|
|
|
var dynamicTyping = _config.dynamicTyping || false; |
|
|
|
|
debugger; |
|
|
|
|
if (typeof dynamicTyping == 'function') { |
|
|
|
|
_config.dynamicTypingFunction = dynamicTyping; |
|
|
|
|
// Will be filled on first row call
|
|
|
|
|
dynamicTyping = {}; |
|
|
|
|
} |
|
|
|
|
_config.dynamicTyping = dynamicTyping; |
|
|
|
|
_config.shouldApplyDynamicTyping = function(field) { |
|
|
|
|
// Cache function values to avoid calling it for each row
|
|
|
|
|
if (_config.dynamicTypingFunction && !_config.dynamicTyping[field]) { |
|
|
|
|
_config.dynamicTyping[field] = _config.dynamicTypingFunction(field); |
|
|
|
|
} |
|
|
|
|
return (_config.dynamicTyping[field] || _config.dynamicTyping) === true |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (_config.worker && Papa.WORKERS_SUPPORTED) |
|
|
|
|
{ |
|
|
|
@ -415,24 +429,6 @@
@@ -415,24 +429,6 @@
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
function DynamicTypingConfig(config) |
|
|
|
|
{ |
|
|
|
|
this._config = config; |
|
|
|
|
} |
|
|
|
|
DynamicTypingConfig.prototype.constructor = DynamicTypingConfig; |
|
|
|
|
DynamicTypingConfig.prototype.isIncluded = function(field) |
|
|
|
|
{ |
|
|
|
|
if (typeof this._config === 'function') |
|
|
|
|
{ |
|
|
|
|
return this._config(field) === true; |
|
|
|
|
} |
|
|
|
|
if (typeof this._config === 'object') |
|
|
|
|
{ |
|
|
|
|
return this._config[field] === true; |
|
|
|
|
} |
|
|
|
|
return !!this._config; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** ChunkStreamer is the base prototype for various streamer implementations. */ |
|
|
|
|
function ChunkStreamer(config) |
|
|
|
|
{ |
|
|
|
@ -987,7 +983,7 @@
@@ -987,7 +983,7 @@
|
|
|
|
|
|
|
|
|
|
function parseDynamic(field, value) |
|
|
|
|
{ |
|
|
|
|
if (_config.dynamicTyping.isIncluded(field)) |
|
|
|
|
if (_config.shouldApplyDynamicTyping(field)) |
|
|
|
|
{ |
|
|
|
|
if (value === 'true' || value === 'TRUE') |
|
|
|
|
return true; |
|
|
|
|