decode.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  3. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  4. _Object$defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = decode;
  8. var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
  9. var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
  10. var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
  11. var _ParseACL = _interopRequireDefault(require("./ParseACL"));
  12. var _ParseFile = _interopRequireDefault(require("./ParseFile"));
  13. var _ParseGeoPoint = _interopRequireDefault(require("./ParseGeoPoint"));
  14. var _ParsePolygon = _interopRequireDefault(require("./ParsePolygon"));
  15. var _ParseObject = _interopRequireDefault(require("./ParseObject"));
  16. var _ParseOp = require("./ParseOp");
  17. var _ParseRelation = _interopRequireDefault(require("./ParseRelation"));
  18. /**
  19. * Copyright (c) 2015-present, Parse, LLC.
  20. * All rights reserved.
  21. *
  22. * This source code is licensed under the BSD-style license found in the
  23. * LICENSE file in the root directory of this source tree. An additional grant
  24. * of patent rights can be found in the PATENTS file in the same directory.
  25. *
  26. * @flow
  27. */
  28. // eslint-disable-line no-unused-vars
  29. function decode(value
  30. /*: any*/
  31. )
  32. /*: any*/
  33. {
  34. if (value === null || (0, _typeof2.default)(value) !== 'object') {
  35. return value;
  36. }
  37. if ((0, _isArray.default)(value)) {
  38. var dup = [];
  39. (0, _forEach.default)(value).call(value, function (v, i) {
  40. dup[i] = decode(v);
  41. });
  42. return dup;
  43. }
  44. if (typeof value.__op === 'string') {
  45. return (0, _ParseOp.opFromJSON)(value);
  46. }
  47. if (value.__type === 'Pointer' && value.className) {
  48. return _ParseObject.default.fromJSON(value);
  49. }
  50. if (value.__type === 'Object' && value.className) {
  51. return _ParseObject.default.fromJSON(value);
  52. }
  53. if (value.__type === 'Relation') {
  54. // The parent and key fields will be populated by the parent
  55. var relation = new _ParseRelation.default(null, null);
  56. relation.targetClassName = value.className;
  57. return relation;
  58. }
  59. if (value.__type === 'Date') {
  60. return new Date(value.iso);
  61. }
  62. if (value.__type === 'File') {
  63. return _ParseFile.default.fromJSON(value);
  64. }
  65. if (value.__type === 'GeoPoint') {
  66. return new _ParseGeoPoint.default({
  67. latitude: value.latitude,
  68. longitude: value.longitude
  69. });
  70. }
  71. if (value.__type === 'Polygon') {
  72. return new _ParsePolygon.default(value.coordinates);
  73. }
  74. var copy = {};
  75. for (var k in value) {
  76. copy[k] = decode(value[k]);
  77. }
  78. return copy;
  79. }