Browse Source

Added a return value to the step function when using streaming. This will allow the user to abort parsing by returning false.

pull/33/head
Matt Butt 11 years ago
parent
commit
f20a9a2df5
  1. 22
      jquery.parse.js

22
jquery.parse.js

@ -56,7 +56,7 @@
if (isFunction(options.before)) if (isFunction(options.before))
{ {
var returned = options.before(f.file, f.inputElem); var returned = options.before(f.file, f.inputElem);
if (typeof returned === 'object') if (typeof returned === 'object')
f.instanceConfig = $.extend(f.instanceConfig, returned); f.instanceConfig = $.extend(f.instanceConfig, returned);
else if (returned === "skip") else if (returned === "skip")
@ -124,7 +124,7 @@
if (settings.config.step) // it had better be there...! if (settings.config.step) // it had better be there...!
{ {
var userStep = settings.config.step; var userStep = settings.config.step;
settings.config.step = function(data) { userStep(data, file, settings.inputElem); }; settings.config.step = function(data) { return userStep(data, file, settings.inputElem); };
} }
var start = 0; var start = 0;
@ -153,10 +153,10 @@
if (text >= settings.chunkSize) if (text >= settings.chunkSize)
{ {
var lastLineEnd = text.lastIndexOf("\n"); var lastLineEnd = text.lastIndexOf("\n");
if (lastLineEnd < 0) if (lastLineEnd < 0)
lastLineEnd = text.lastIndexOf("\r"); lastLineEnd = text.lastIndexOf("\r");
if (lastLineEnd > -1) if (lastLineEnd > -1)
{ {
partialLine = text.substring(lastLineEnd + 1); // skip the line ending character partialLine = text.substring(lastLineEnd + 1); // skip the line ending character
@ -249,7 +249,7 @@
_state.ch = _input[_state.i]; _state.ch = _input[_state.i];
_state.line += _state.ch; _state.line += _state.ch;
if (_state.ch == '"') if (_state.ch == '"')
handleQuote(); handleQuote();
else if (_state.inQuotes) else if (_state.inQuotes)
@ -295,7 +295,7 @@
if (typeof config.header !== 'boolean') if (typeof config.header !== 'boolean')
config.header = _defaultConfig.header; config.header = _defaultConfig.header;
if (typeof config.dynamicTyping !== 'boolean') if (typeof config.dynamicTyping !== 'boolean')
config.dynamicTyping = _defaultConfig.dynamicTyping; config.dynamicTyping = _defaultConfig.dynamicTyping;
@ -409,7 +409,7 @@
{ {
if (i >= _input.length) if (i >= _input.length)
return false; return false;
var ch = _input[i]; var ch = _input[i];
if (ch == _config.delimiter if (ch == _config.delimiter
@ -461,7 +461,7 @@
_state.fieldVal = tryParseFloat(_state.fieldVal); _state.fieldVal = tryParseFloat(_state.fieldVal);
_state.parsed[_state.parsed.length - 1].push(_state.fieldVal); _state.parsed[_state.parsed.length - 1].push(_state.fieldVal);
} }
_state.fieldVal = ""; _state.fieldVal = "";
_state.field ++; _state.field ++;
} }
@ -507,7 +507,7 @@
saveValue(); saveValue();
var emptyLine = trimEmptyLine(); var emptyLine = trimEmptyLine();
if (!emptyLine && _config.header) if (!emptyLine && _config.header)
inspectFieldCount(); inspectFieldCount();
@ -562,7 +562,7 @@
return true; return true;
var expected = _state.parsed.fields.length; var expected = _state.parsed.fields.length;
// Actual field count tabulated manually because IE<9 doesn't support Object.keys // Actual field count tabulated manually because IE<9 doesn't support Object.keys
var actual = 0; var actual = 0;
var lastRow = _state.parsed.rows[_state.parsed.rows.length - 1]; var lastRow = _state.parsed.rows[_state.parsed.rows.length - 1];
@ -588,7 +588,7 @@
_state.errors[key] = []; _state.errors[key] = [];
_state.errors[key].push({ _state.errors[key].push({
type: type, type: type,
code: code, code: code,
message: msg, message: msg,
line: _state.lineNum, line: _state.lineNum,

Loading…
Cancel
Save