summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/var/serialize.js.map
blob: 29940bfe389df2068950c0dfb16fef4e2091de8d (plain) (blame)
1
{"version":3,"sources":["../../../src/php/var/serialize.js"],"names":["module","exports","serialize","mixedValue","val","key","okey","ktype","vals","count","_utf8Size","str","encodeURI","split","length","_getType","inp","match","cons","types","type","constructor","toString","toLowerCase","Math","round","hasOwnProperty","parseInt"],"mappings":"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","file":"serialize.js","sourcesContent":["module.exports = function serialize (mixedValue) {\n  //  discuss at: http://locutus.io/php/serialize/\n  // original by: Arpad Ray (mailto:arpad@php.net)\n  // improved by: Dino\n  // improved by: Le Torbi (http://www.letorbi.de/)\n  // improved by: Kevin van Zonneveld (http://kvz.io/)\n  // bugfixed by: Andrej Pavlovic\n  // bugfixed by: Garagoth\n  // bugfixed by: Russell Walker (http://www.nbill.co.uk/)\n  // bugfixed by: Jamie Beck (http://www.terabit.ca/)\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io/)\n  // bugfixed by: Ben (http://benblume.co.uk/)\n  // bugfixed by: Codestar (http://codestarlive.com/)\n  // bugfixed by: idjem (https://github.com/idjem)\n  //    input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html)\n  //    input by: Martin (http://www.erlenwiese.de/)\n  //      note 1: We feel the main purpose of this function should be to ease\n  //      note 1: the transport of data between php & js\n  //      note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n  //   example 1: serialize(['Kevin', 'van', 'Zonneveld'])\n  //   returns 1: 'a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}'\n  //   example 2: serialize({firstName: 'Kevin', midName: 'van'})\n  //   returns 2: 'a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}'\n  //   example 3: serialize( {'ü': 'ü', '四': '四', '𠜎': '𠜎'})\n  //   returns 3: 'a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}'\n\n  var val, key, okey\n  var ktype = ''\n  var vals = ''\n  var count = 0\n\n  var _utf8Size = function (str) {\n    return ~-encodeURI(str).split(/%..|./).length\n  }\n\n  var _getType = function (inp) {\n    var match\n    var key\n    var cons\n    var types\n    var type = typeof inp\n\n    if (type === 'object' && !inp) {\n      return 'null'\n    }\n\n    if (type === 'object') {\n      if (!inp.constructor) {\n        return 'object'\n      }\n      cons = inp.constructor.toString()\n      match = cons.match(/(\\w+)\\(/)\n      if (match) {\n        cons = match[1].toLowerCase()\n      }\n      types = ['boolean', 'number', 'string', 'array']\n      for (key in types) {\n        if (cons === types[key]) {\n          type = types[key]\n          break\n        }\n      }\n    }\n    return type\n  }\n\n  var type = _getType(mixedValue)\n\n  switch (type) {\n    case 'function':\n      val = ''\n      break\n    case 'boolean':\n      val = 'b:' + (mixedValue ? '1' : '0')\n      break\n    case 'number':\n      val = (Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue\n      break\n    case 'string':\n      val = 's:' + _utf8Size(mixedValue) + ':\"' + mixedValue + '\"'\n      break\n    case 'array':\n    case 'object':\n      val = 'a'\n      /*\n      if (type === 'object') {\n        var objname = mixedValue.constructor.toString().match(/(\\w+)\\(\\)/);\n        if (objname === undefined) {\n          return;\n        }\n        objname[1] = serialize(objname[1]);\n        val = 'O' + objname[1].substring(1, objname[1].length - 1);\n      }\n      */\n\n      for (key in mixedValue) {\n        if (mixedValue.hasOwnProperty(key)) {\n          ktype = _getType(mixedValue[key])\n          if (ktype === 'function') {\n            continue\n          }\n\n          okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key)\n          vals += serialize(okey) + serialize(mixedValue[key])\n          count++\n        }\n      }\n      val += ':' + count + ':{' + vals + '}'\n      break\n    case 'undefined':\n    default:\n      // Fall-through\n      // if the JS object has a property which contains a null value,\n      // the string cannot be unserialized by PHP\n      val = 'N'\n      break\n  }\n  if (type !== 'object' && type !== 'array') {\n    val += ';'\n  }\n\n  return val\n}\n"]}