diff options
Diffstat (limited to 'node_modules/locutus/php/var/serialize.js')
-rw-r--r-- | node_modules/locutus/php/var/serialize.js | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/node_modules/locutus/php/var/serialize.js b/node_modules/locutus/php/var/serialize.js deleted file mode 100644 index 63cb8e8..0000000 --- a/node_modules/locutus/php/var/serialize.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -module.exports = function serialize(mixedValue) { - // discuss at: http://locutus.io/php/serialize/ - // original by: Arpad Ray (mailto:arpad@php.net) - // improved by: Dino - // improved by: Le Torbi (http://www.letorbi.de/) - // improved by: Kevin van Zonneveld (http://kvz.io/) - // bugfixed by: Andrej Pavlovic - // bugfixed by: Garagoth - // bugfixed by: Russell Walker (http://www.nbill.co.uk/) - // bugfixed by: Jamie Beck (http://www.terabit.ca/) - // bugfixed by: Kevin van Zonneveld (http://kvz.io/) - // bugfixed by: Ben (http://benblume.co.uk/) - // bugfixed by: Codestar (http://codestarlive.com/) - // bugfixed by: idjem (https://github.com/idjem) - // input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html) - // input by: Martin (http://www.erlenwiese.de/) - // note 1: We feel the main purpose of this function should be to ease - // note 1: the transport of data between php & js - // note 1: Aiming for PHP-compatibility, we have to translate objects to arrays - // example 1: serialize(['Kevin', 'van', 'Zonneveld']) - // returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}' - // example 2: serialize({firstName: 'Kevin', midName: 'van'}) - // returns 2: 'a:2:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";}' - // example 3: serialize( {'ü': 'ü', '四': '四', '𠜎': '𠜎'}) - // returns 3: 'a:3:{s:2:"ü";s:2:"ü";s:3:"四";s:3:"四";s:4:"𠜎";s:4:"𠜎";}' - - var val, key, okey; - var ktype = ''; - var vals = ''; - var count = 0; - - var _utf8Size = function _utf8Size(str) { - return ~-encodeURI(str).split(/%..|./).length; - }; - - var _getType = function _getType(inp) { - var match; - var key; - var cons; - var types; - var type = typeof inp === 'undefined' ? 'undefined' : _typeof(inp); - - if (type === 'object' && !inp) { - return 'null'; - } - - if (type === 'object') { - if (!inp.constructor) { - return 'object'; - } - cons = inp.constructor.toString(); - match = cons.match(/(\w+)\(/); - if (match) { - cons = match[1].toLowerCase(); - } - types = ['boolean', 'number', 'string', 'array']; - for (key in types) { - if (cons === types[key]) { - type = types[key]; - break; - } - } - } - return type; - }; - - var type = _getType(mixedValue); - - switch (type) { - case 'function': - val = ''; - break; - case 'boolean': - val = 'b:' + (mixedValue ? '1' : '0'); - break; - case 'number': - val = (Math.round(mixedValue) === mixedValue ? 'i' : 'd') + ':' + mixedValue; - break; - case 'string': - val = 's:' + _utf8Size(mixedValue) + ':"' + mixedValue + '"'; - break; - case 'array': - case 'object': - val = 'a'; - /* - if (type === 'object') { - var objname = mixedValue.constructor.toString().match(/(\w+)\(\)/); - if (objname === undefined) { - return; - } - objname[1] = serialize(objname[1]); - val = 'O' + objname[1].substring(1, objname[1].length - 1); - } - */ - - for (key in mixedValue) { - if (mixedValue.hasOwnProperty(key)) { - ktype = _getType(mixedValue[key]); - if (ktype === 'function') { - continue; - } - - okey = key.match(/^[0-9]+$/) ? parseInt(key, 10) : key; - vals += serialize(okey) + serialize(mixedValue[key]); - count++; - } - } - val += ':' + count + ':{' + vals + '}'; - break; - case 'undefined': - default: - // Fall-through - // if the JS object has a property which contains a null value, - // the string cannot be unserialized by PHP - val = 'N'; - break; - } - if (type !== 'object' && type !== 'array') { - val += ';'; - } - - return val; -}; -//# sourceMappingURL=serialize.js.map
\ No newline at end of file |