"use strict"; var _CoreManager = _interopRequireDefault(require("./CoreManager")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @flow */ const Storage = { async() /*: boolean*/{ const controller = _CoreManager.default.getStorageController(); return !!controller.async; }, getItem(path /*: string*/) /*: ?string*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); } return controller.getItem(path); }, getItemAsync(path /*: string*/) /*: Promise*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { return controller.getItemAsync(path); } return Promise.resolve(controller.getItem(path)); }, setItem(path /*: string*/, value /*: string*/) /*: void*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); } return controller.setItem(path, value); }, setItemAsync(path /*: string*/, value /*: string*/) /*: Promise*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { return controller.setItemAsync(path, value); } return Promise.resolve(controller.setItem(path, value)); }, removeItem(path /*: string*/) /*: void*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); } return controller.removeItem(path); }, removeItemAsync(path /*: string*/) /*: Promise*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { return controller.removeItemAsync(path); } return Promise.resolve(controller.removeItem(path)); }, getAllKeys() /*: Array*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { throw new Error('Synchronous storage is not supported by the current storage controller'); } return controller.getAllKeys(); }, getAllKeysAsync() /*: Promise>*/{ const controller = _CoreManager.default.getStorageController(); if (controller.async === 1) { return controller.getAllKeysAsync(); } return Promise.resolve(controller.getAllKeys()); }, generatePath(path /*: string*/) /*: string*/{ if (!_CoreManager.default.get('APPLICATION_ID')) { throw new Error('You need to call Parse.initialize before using Parse.'); } if (typeof path !== 'string') { throw new Error('Tried to get a Storage path that was not a String.'); } if (path[0] === '/') { path = path.substr(1); } return 'Parse/' + _CoreManager.default.get('APPLICATION_ID') + '/' + path; }, _clear() { const controller = _CoreManager.default.getStorageController(); if (controller.hasOwnProperty('clear')) { controller.clear(); } } }; module.exports = Storage; _CoreManager.default.setStorageController(require('./StorageController.default'));