Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/main/core/src/internal/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/main/core/src/internal/decode-attribute-value.js

import Type from '../lib/type';
import Text from '../lib/text';

export default function decodeAttributeValue(value: any)
{
	if (Type.isString(value))
	{
		const decodedValue = Text.decode(value);
		let result;

		try
		{
			result = JSON.parse(decodedValue);
		}
		catch (e)
		{
			result = decodedValue;
		}

		if (result === decodedValue)
		{
			if (/^[\d.]+[.]?\d+$/.test(result))
			{
				return Number(result);
			}
		}

		if (result === 'true' || result === 'false')
		{
			return Boolean(result);
		}

		return result;
	}

	return value;
}