]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / node-gyp / node_modules / path-array / node_modules / array-index / node_modules / es6-symbol / node_modules / es5-ext / object / serialize.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/node-gyp/node_modules/path-array/node_modules/array-index/node_modules/es6-symbol/node_modules/es5-ext/object/serialize.js
new file mode 100644 (file)
index 0000000..8113b68
--- /dev/null
@@ -0,0 +1,36 @@
+'use strict';
+
+var toArray  = require('./to-array')
+  , isDate   = require('../date/is-date')
+  , isRegExp = require('../reg-exp/is-reg-exp')
+
+  , isArray = Array.isArray, stringify = JSON.stringify
+  , keyValueToString = function (value, key) { return stringify(key) + ':' + exports(value); };
+
+var sparseMap = function (arr) {
+       var i, l = arr.length, result = new Array(l);
+       for (i = 0; i < l; ++i) {
+               if (!arr.hasOwnProperty(i)) continue;
+               result[i] = exports(arr[i]);
+       }
+       return result;
+};
+
+module.exports = exports = function (obj) {
+       if (obj == null) return String(obj);
+       switch (typeof obj) {
+       case 'string':
+               return stringify(obj);
+       case 'number':
+       case 'boolean':
+       case 'function':
+               return String(obj);
+       case 'object':
+               if (isArray(obj)) return '[' + sparseMap(obj) + ']';
+               if (isRegExp(obj)) return String(obj);
+               if (isDate(obj)) return 'new Date(' + obj.valueOf() + ')';
+               return '{' + toArray(obj, keyValueToString) + '}';
+       default:
+               throw new TypeError("Serialization of " + String(obj) + "is unsupported");
+       }
+};