Show More
Commit Description:
force log out when password change
Commit Description:
force log out when password change
References:
File last commit:
Show/Diff file:
Action:
node_modules/es5-ext/object/serialize.js
| 41 lines
| 1.2 KiB
| application/javascript
| JavascriptLexer
|
r789 | "use strict"; | |||
var toArray = require("./to-array") | ||||
, isDate = require("../date/is-date") | ||||
, isValue = require("../object/is-value") | ||||
, isRegExp = require("../reg-exp/is-reg-exp"); | ||||
var isArray = Array.isArray | ||||
, stringify = JSON.stringify | ||||
, objHasOwnProperty = Object.prototype.hasOwnProperty; | ||||
var keyValueToString = function (value, key) { | ||||
return stringify(key) + ":" + module.exports(value); | ||||
}; | ||||
var sparseMap = function (arr) { | ||||
var i, length = arr.length, result = new Array(length); | ||||
for (i = 0; i < length; ++i) { | ||||
if (!objHasOwnProperty.call(arr, i)) continue; | ||||
result[i] = module.exports(arr[i]); | ||||
} | ||||
return result; | ||||
}; | ||||
module.exports = function (obj) { | ||||
if (!isValue(obj)) 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"); | ||||
} | ||||
}; | ||||