UNPKG

@data-driven-forms/react-form-renderer

Version:

React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.

72 lines (55 loc) 1.72 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _dataTypes = _interopRequireDefault(require("../data-types")); /** * Casts string true/false to boolean * @param {String} value value */ var castToBoolean = function castToBoolean(value) { if (typeof value === 'boolean') { return value; } return value === 'true'; }; /** * Check if the value can be converted to number * @param {Any} value value to be checked */ var canBeConvertedToNumber = function canBeConvertedToNumber(value) { return !isNaN(Number(value)) && value !== ''; }; /** * Check if the value can be converted to float * @param {Any} value value to be checked */ var canBeConvertedToFloat = function canBeConvertedToFloat(value) { if (typeof value == 'string' && value.endsWith('.')) { return false; } return canBeConvertedToNumber(value); }; /** * Changes the value type * @param {FieldDataTypes} dataType type for value conversion * @param {Any} value value to be converted */ var convertType = function convertType(dataType, value) { switch (dataType) { case _dataTypes["default"].INTEGER: return canBeConvertedToNumber(value) ? parseInt(value) : value; case _dataTypes["default"].FLOAT: return canBeConvertedToFloat(value) ? parseFloat(value) : value; case _dataTypes["default"].NUMBER: return canBeConvertedToNumber(value) ? Number(value) : value; case _dataTypes["default"].BOOLEAN: return castToBoolean(value); default: return value; } }; var _default = convertType; exports["default"] = _default;