Parse.js 8.3 KB

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