Parse.js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. var _decode = _interopRequireDefault(require("./decode"));
  5. var _encode = _interopRequireDefault(require("./encode"));
  6. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  7. var _InstallationController = _interopRequireDefault(require("./InstallationController"));
  8. var ParseOp = _interopRequireWildcard(require("./ParseOp"));
  9. var _RESTController = _interopRequireDefault(require("./RESTController"));
  10. /**
  11. * Copyright (c) 2015-present, Parse, LLC.
  12. * All rights reserved.
  13. *
  14. * This source code is licensed under the BSD-style license found in the
  15. * LICENSE file in the root directory of this source tree. An additional grant
  16. * of patent rights can be found in the PATENTS file in the same directory.
  17. */
  18. /**
  19. * Contains all Parse API classes and functions.
  20. * @static
  21. * @global
  22. * @class
  23. * @hideconstructor
  24. */
  25. var Parse = {
  26. /**
  27. * Call this method first to set up your authentication tokens for Parse.
  28. * You can get your keys from the Data Browser on parse.com.
  29. * @param {String} applicationId Your Parse Application ID.
  30. * @param {String} javaScriptKey (optional) Your Parse JavaScript Key (Not needed for parse-server)
  31. * @param {String} masterKey (optional) Your Parse Master Key. (Node.js only!)
  32. * @static
  33. */
  34. initialize: function (applicationId
  35. /*: string*/
  36. , javaScriptKey
  37. /*: string*/
  38. ) {
  39. if ("browser" === 'browser' && _CoreManager.default.get('IS_NODE') && !process.env.SERVER_RENDERING) {
  40. /* eslint-disable no-console */
  41. console.log('It looks like you\'re using the browser version of the SDK in a ' + 'node.js environment. You should require(\'parse/node\') instead.');
  42. /* eslint-enable no-console */
  43. }
  44. Parse._initialize(applicationId, javaScriptKey);
  45. },
  46. _initialize: function (applicationId
  47. /*: string*/
  48. , javaScriptKey
  49. /*: string*/
  50. , masterKey
  51. /*: string*/
  52. ) {
  53. _CoreManager.default.set('APPLICATION_ID', applicationId);
  54. _CoreManager.default.set('JAVASCRIPT_KEY', javaScriptKey);
  55. _CoreManager.default.set('MASTER_KEY', masterKey);
  56. _CoreManager.default.set('USE_MASTER_KEY', false);
  57. },
  58. /**
  59. * Call this method to set your AsyncStorage engine
  60. * Starting Parse@1.11, the ParseSDK do not provide a React AsyncStorage as the ReactNative module
  61. * is not provided at a stable path and changes over versions.
  62. * @param {AsyncStorage} storage a react native async storage.
  63. * @static
  64. */
  65. setAsyncStorage: function (storage
  66. /*: any*/
  67. ) {
  68. _CoreManager.default.setAsyncStorage(storage);
  69. },
  70. /**
  71. * Call this method to set your LocalDatastoreStorage engine
  72. * If using React-Native use {@link Parse.setAsyncStorage Parse.setAsyncStorage()}
  73. * @param {LocalDatastoreController} controller a data storage.
  74. * @static
  75. */
  76. setLocalDatastoreController: function (controller
  77. /*: any*/
  78. ) {
  79. _CoreManager.default.setLocalDatastoreController(controller);
  80. }
  81. };
  82. /** These legacy setters may eventually be deprecated **/
  83. /**
  84. * @member Parse.applicationId
  85. * @type string
  86. * @static
  87. */
  88. Object.defineProperty(Parse, 'applicationId', {
  89. get: function () {
  90. return _CoreManager.default.get('APPLICATION_ID');
  91. },
  92. set: function (value) {
  93. _CoreManager.default.set('APPLICATION_ID', value);
  94. }
  95. });
  96. /**
  97. * @member Parse.javaScriptKey
  98. * @type string
  99. * @static
  100. */
  101. Object.defineProperty(Parse, 'javaScriptKey', {
  102. get: function () {
  103. return _CoreManager.default.get('JAVASCRIPT_KEY');
  104. },
  105. set: function (value) {
  106. _CoreManager.default.set('JAVASCRIPT_KEY', value);
  107. }
  108. });
  109. /**
  110. * @member Parse.masterKey
  111. * @type string
  112. * @static
  113. */
  114. Object.defineProperty(Parse, 'masterKey', {
  115. get: function () {
  116. return _CoreManager.default.get('MASTER_KEY');
  117. },
  118. set: function (value) {
  119. _CoreManager.default.set('MASTER_KEY', value);
  120. }
  121. });
  122. /**
  123. * @member Parse.serverURL
  124. * @type string
  125. * @static
  126. */
  127. Object.defineProperty(Parse, 'serverURL', {
  128. get: function () {
  129. return _CoreManager.default.get('SERVER_URL');
  130. },
  131. set: function (value) {
  132. _CoreManager.default.set('SERVER_URL', value);
  133. }
  134. });
  135. /**
  136. * @member Parse.serverAuthToken
  137. * @type string
  138. * @static
  139. */
  140. Object.defineProperty(Parse, 'serverAuthToken', {
  141. get: function () {
  142. return _CoreManager.default.get('SERVER_AUTH_TOKEN');
  143. },
  144. set: function (value) {
  145. _CoreManager.default.set('SERVER_AUTH_TOKEN', value);
  146. }
  147. });
  148. /**
  149. * @member Parse.serverAuthType
  150. * @type string
  151. * @static
  152. */
  153. Object.defineProperty(Parse, 'serverAuthType', {
  154. get: function () {
  155. return _CoreManager.default.get('SERVER_AUTH_TYPE');
  156. },
  157. set: function (value) {
  158. _CoreManager.default.set('SERVER_AUTH_TYPE', value);
  159. }
  160. });
  161. /**
  162. * @member Parse.liveQueryServerURL
  163. * @type string
  164. * @static
  165. */
  166. Object.defineProperty(Parse, 'liveQueryServerURL', {
  167. get: function () {
  168. return _CoreManager.default.get('LIVEQUERY_SERVER_URL');
  169. },
  170. set: function (value) {
  171. _CoreManager.default.set('LIVEQUERY_SERVER_URL', value);
  172. }
  173. });
  174. /* End setters */
  175. Parse.ACL = require('./ParseACL').default;
  176. Parse.Analytics = require('./Analytics');
  177. Parse.AnonymousUtils = require('./AnonymousUtils').default;
  178. Parse.Cloud = require('./Cloud');
  179. Parse.CoreManager = require('./CoreManager');
  180. Parse.Config = require('./ParseConfig').default;
  181. Parse.Error = require('./ParseError').default;
  182. Parse.FacebookUtils = require('./FacebookUtils').default;
  183. Parse.File = require('./ParseFile').default;
  184. Parse.GeoPoint = require('./ParseGeoPoint').default;
  185. Parse.Polygon = require('./ParsePolygon').default;
  186. Parse.Installation = require('./ParseInstallation').default;
  187. Parse.LocalDatastore = require('./LocalDatastore');
  188. Parse.Object = require('./ParseObject').default;
  189. Parse.Op = {
  190. Set: ParseOp.SetOp,
  191. Unset: ParseOp.UnsetOp,
  192. Increment: ParseOp.IncrementOp,
  193. Add: ParseOp.AddOp,
  194. Remove: ParseOp.RemoveOp,
  195. AddUnique: ParseOp.AddUniqueOp,
  196. Relation: ParseOp.RelationOp
  197. };
  198. Parse.Push = require('./Push');
  199. Parse.Query = require('./ParseQuery').default;
  200. Parse.Relation = require('./ParseRelation').default;
  201. Parse.Role = require('./ParseRole').default;
  202. Parse.Schema = require('./ParseSchema').default;
  203. Parse.Session = require('./ParseSession').default;
  204. Parse.Storage = require('./Storage');
  205. Parse.User = require('./ParseUser').default;
  206. Parse.LiveQuery = require('./ParseLiveQuery').default;
  207. Parse.LiveQueryClient = require('./LiveQueryClient').default;
  208. Parse._request = function () {
  209. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  210. args[_key] = arguments[_key];
  211. }
  212. return _CoreManager.default.getRESTController().request.apply(null, args);
  213. };
  214. Parse._ajax = function () {
  215. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  216. args[_key2] = arguments[_key2];
  217. }
  218. return _CoreManager.default.getRESTController().ajax.apply(null, args);
  219. }; // We attempt to match the signatures of the legacy versions of these methods
  220. Parse._decode = function (_, value) {
  221. return (0, _decode.default)(value);
  222. };
  223. Parse._encode = function (value, _, disallowObjects) {
  224. return (0, _encode.default)(value, disallowObjects);
  225. };
  226. Parse._getInstallationId = function () {
  227. return _CoreManager.default.getInstallationController().currentInstallationId();
  228. };
  229. /**
  230. * Enable pinning in your application.
  231. * This must be called before your application can use pinning.
  232. *
  233. * @static
  234. */
  235. Parse.enableLocalDatastore = function () {
  236. Parse.LocalDatastore.isEnabled = true;
  237. };
  238. /**
  239. * Flag that indicates whether Local Datastore is enabled.
  240. *
  241. * @static
  242. */
  243. Parse.isLocalDatastoreEnabled = function () {
  244. return Parse.LocalDatastore.isEnabled;
  245. };
  246. /**
  247. * Gets all contents from Local Datastore
  248. *
  249. * <pre>
  250. * await Parse.dumpLocalDatastore();
  251. * </pre>
  252. *
  253. * @static
  254. */
  255. Parse.dumpLocalDatastore = function () {
  256. if (!Parse.LocalDatastore.isEnabled) {
  257. console.log('Parse.enableLocalDatastore() must be called first'); // eslint-disable-line no-console
  258. return Promise.resolve({});
  259. } else {
  260. return Parse.LocalDatastore._getAllContents();
  261. }
  262. };
  263. _CoreManager.default.setInstallationController(_InstallationController.default);
  264. _CoreManager.default.setRESTController(_RESTController.default);
  265. // For legacy requires, of the form `var Parse = require('parse').Parse`
  266. Parse.Parse = Parse;
  267. module.exports = Parse;