summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/var/serialize.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/var/serialize.js')
-rw-r--r--node_modules/locutus/php/var/serialize.js128
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