Skip to content

Commit

Permalink
Don't type cast non-sensible values
Browse files Browse the repository at this point in the history
  • Loading branch information
voxpelli committed Jan 19, 2021
1 parent 3fb0edc commit e792ed0
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions lib/fields.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ var validators = require('./validators');
var coerceArray = function (arr) {
return is.array(arr) && arr.length > 0 ? arr : [];
};
var isSingleFieldData = function (raw_data) {
return is.string(raw_data) || is.number(raw_data);
};
var nameSeparatorRegExp = /[_-]/g;

exports.string = function (options) {
Expand All @@ -21,10 +24,7 @@ exports.string = function (options) {
f.widget = f.widget || forms.widgets.text(opt.attrs || {});

f.parse = function (raw_data) {
if (typeof raw_data !== 'undefined' && raw_data !== null) {
return String(raw_data);
}
return '';
return isSingleFieldData(raw_data) ? String(raw_data) : '';
};
f.bind = function (raw_data) {
var b = assign({}, f); // clone field object:
Expand Down Expand Up @@ -112,10 +112,10 @@ exports.number = function (opt) {
var f = exports.string(opts);

f.parse = function (raw_data) {
if (raw_data === null || raw_data === '') {
if (raw_data === '') {
return NaN;
}
return Number(raw_data);
return isSingleFieldData(raw_data) ? Number(raw_data) : NaN;
};
return f;
};
Expand All @@ -126,7 +126,7 @@ exports['boolean'] = function (opt) {

f.widget = opts.widget || forms.widgets.checkbox(opts.attrs || {});
f.parse = function (raw_data) {
return !!raw_data;
return raw_data && isSingleFieldData(raw_data);
};
return f;
};
Expand Down

0 comments on commit e792ed0

Please sign in to comment.