{"ast":null,"code":"import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport mergeOptions from 'merge-options';\nvar merge = mergeOptions.bind({\n  concatArrays: true,\n  ignoreUndefined: true\n});\n\nvar mergeLocalStorageItem = function mergeLocalStorageItem(key, value) {\n  var oldValue = window.localStorage.getItem(key);\n  var oldObject = JSON.parse(oldValue);\n  var newObject = JSON.parse(value);\n  var nextValue = JSON.stringify(merge(oldObject, newObject));\n  window.localStorage.setItem(key, nextValue);\n};\n\nvar createPromise = function createPromise(getValue, callback) {\n  return new Promise(function (resolve, reject) {\n    try {\n      var value = getValue();\n\n      if (callback) {\n        callback(null, value);\n      }\n\n      resolve(value);\n    } catch (err) {\n      if (callback) {\n        callback(err);\n      }\n\n      reject(err);\n    }\n  });\n};\n\nvar createPromiseAll = function createPromiseAll(promises, callback, processResult) {\n  return Promise.all(promises).then(function (result) {\n    var value = processResult ? processResult(result) : null;\n    callback && callback(null, value);\n    return Promise.resolve(value);\n  }, function (errors) {\n    callback && callback(errors);\n    return Promise.reject(errors);\n  });\n};\n\nvar AsyncStorage = function () {\n  function AsyncStorage() {\n    _classCallCheck(this, AsyncStorage);\n  }\n\n  _createClass(AsyncStorage, null, [{\n    key: \"getItem\",\n    value: function getItem(key, callback) {\n      return createPromise(function () {\n        return window.localStorage.getItem(key);\n      }, callback);\n    }\n  }, {\n    key: \"setItem\",\n    value: function setItem(key, value, callback) {\n      return createPromise(function () {\n        window.localStorage.setItem(key, value);\n      }, callback);\n    }\n  }, {\n    key: \"removeItem\",\n    value: function removeItem(key, callback) {\n      return createPromise(function () {\n        return window.localStorage.removeItem(key);\n      }, callback);\n    }\n  }, {\n    key: \"mergeItem\",\n    value: function mergeItem(key, value, callback) {\n      return createPromise(function () {\n        mergeLocalStorageItem(key, value);\n      }, callback);\n    }\n  }, {\n    key: \"clear\",\n    value: function clear(callback) {\n      return createPromise(function () {\n        window.localStorage.clear();\n      }, callback);\n    }\n  }, {\n    key: \"getAllKeys\",\n    value: function getAllKeys(callback) {\n      return createPromise(function () {\n        var numberOfKeys = window.localStorage.length;\n        var keys = [];\n\n        for (var i = 0; i < numberOfKeys; i += 1) {\n          var key = window.localStorage.key(i);\n          keys.push(key);\n        }\n\n        return keys;\n      }, callback);\n    }\n  }, {\n    key: \"flushGetRequests\",\n    value: function flushGetRequests() {}\n  }, {\n    key: \"multiGet\",\n    value: function multiGet(keys, callback) {\n      var promises = keys.map(function (key) {\n        return AsyncStorage.getItem(key);\n      });\n\n      var processResult = function processResult(result) {\n        return result.map(function (value, i) {\n          return [keys[i], value];\n        });\n      };\n\n      return createPromiseAll(promises, callback, processResult);\n    }\n  }, {\n    key: \"multiSet\",\n    value: function multiSet(keyValuePairs, callback) {\n      var promises = keyValuePairs.map(function (item) {\n        return AsyncStorage.setItem(item[0], item[1]);\n      });\n      return createPromiseAll(promises, callback);\n    }\n  }, {\n    key: \"multiRemove\",\n    value: function multiRemove(keys, callback) {\n      var promises = keys.map(function (key) {\n        return AsyncStorage.removeItem(key);\n      });\n      return createPromiseAll(promises, callback);\n    }\n  }, {\n    key: \"multiMerge\",\n    value: function multiMerge(keyValuePairs, callback) {\n      var promises = keyValuePairs.map(function (item) {\n        return AsyncStorage.mergeItem(item[0], item[1]);\n      });\n      return createPromiseAll(promises, callback);\n    }\n  }]);\n\n  return AsyncStorage;\n}();\n\nexport { AsyncStorage as default };","map":{"version":3,"sources":["AsyncStorage.js"],"names":["merge","concatArrays","ignoreUndefined","mergeLocalStorageItem","oldValue","window","oldObject","JSON","newObject","nextValue","createPromise","value","getValue","callback","resolve","reject","createPromiseAll","result","processResult","Promise","errors","numberOfKeys","keys","i","key","promises","AsyncStorage","keyValuePairs","item"],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Nicolas Gallagher.\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\n\nimport mergeOptions from 'merge-options';\n\nconst merge = mergeOptions.bind({\n  concatArrays: true,\n  ignoreUndefined: true,\n});\n\nconst mergeLocalStorageItem = (key, value) => {\n  const oldValue = window.localStorage.getItem(key);\n  const oldObject = JSON.parse(oldValue);\n  const newObject = JSON.parse(value);\n  const nextValue = JSON.stringify(merge(oldObject, newObject));\n  window.localStorage.setItem(key, nextValue);\n};\n\nconst createPromise = (getValue, callback): Promise<*> => {\n  return new Promise((resolve, reject) => {\n    try {\n      const value = getValue();\n      if (callback) {\n        callback(null, value);\n      }\n      resolve(value);\n    } catch (err) {\n      if (callback) {\n        callback(err);\n      }\n      reject(err);\n    }\n  });\n};\n\nconst createPromiseAll = (promises, callback, processResult): Promise<*> => {\n  return Promise.all(promises).then(\n    result => {\n      const value = processResult ? processResult(result) : null;\n      callback && callback(null, value);\n      return Promise.resolve(value);\n    },\n    errors => {\n      callback && callback(errors);\n      return Promise.reject(errors);\n    }\n  );\n};\n\nexport default class AsyncStorage {\n\n  /**\n   * Fetches `key` value.\n   */\n  static getItem(key: string, callback?: Function): Promise<*> {\n    return createPromise(() => {\n      return window.localStorage.getItem(key);\n    }, callback);\n  }\n\n  /**\n   * Sets `value` for `key`.\n   */\n  static setItem(key: string, value: string, callback?: Function): Promise<*> {\n    return createPromise(() => {\n      window.localStorage.setItem(key, value);\n    }, callback);\n  }\n\n  /**\n   * Removes a `key`\n   */\n  static removeItem(key: string, callback?: Function): Promise<*> {\n    return createPromise(() => {\n      return window.localStorage.removeItem(key);\n    }, callback);\n  }\n\n  /**\n   * Merges existing value with input value, assuming they are stringified JSON.\n   */\n  static mergeItem(key: string, value: string, callback?: Function): Promise<*> {\n    return createPromise(() => {\n      mergeLocalStorageItem(key, value);\n    }, callback);\n  }\n\n  /**\n   * Erases *all* AsyncStorage for the domain.\n   */\n  static clear(callback?: Function): Promise<*> {\n    return createPromise(() => {\n      window.localStorage.clear();\n    }, callback);\n  }\n\n  /**\n   * Gets *all* keys known to the app, for all callers, libraries, etc.\n   */\n  static getAllKeys(callback?: Function): Promise<*> {\n    return createPromise(() => {\n      const numberOfKeys = window.localStorage.length;\n      const keys = [];\n      for (let i = 0; i < numberOfKeys; i += 1) {\n        const key = window.localStorage.key(i);\n        keys.push(key);\n      }\n      return keys;\n    }, callback);\n  }\n\n  /**\n   * (stub) Flushes any pending requests using a single batch call to get the data.\n   */\n  static flushGetRequests() {}\n\n  /**\n   * multiGet resolves to an array of key-value pair arrays that matches the\n   * input format of multiSet.\n   *\n   *   multiGet(['k1', 'k2']) -> [['k1', 'val1'], ['k2', 'val2']]\n   */\n  static multiGet(keys: Array<string>, callback?: Function): Promise<*> {\n    const promises = keys.map(key => AsyncStorage.getItem(key));\n    const processResult = result => result.map((value, i) => [keys[i], value]);\n    return createPromiseAll(promises, callback, processResult);\n  }\n\n  /**\n   * Takes an array of key-value array pairs.\n   *   multiSet([['k1', 'val1'], ['k2', 'val2']])\n   */\n  static multiSet(keyValuePairs: Array<Array<string>>, callback?: Function): Promise<*> {\n    const promises = keyValuePairs.map(item => AsyncStorage.setItem(item[0], item[1]));\n    return createPromiseAll(promises, callback);\n  }\n\n  /**\n   * Delete all the keys in the `keys` array.\n   */\n  static multiRemove(keys: Array<string>, callback?: Function): Promise<*> {\n    const promises = keys.map(key => AsyncStorage.removeItem(key));\n    return createPromiseAll(promises, callback);\n  }\n\n  /**\n   * Takes an array of key-value array pairs and merges them with existing\n   * values, assuming they are stringified JSON.\n   *\n   *   multiMerge([['k1', 'val1'], ['k2', 'val2']])\n   */\n  static multiMerge(keyValuePairs: Array<Array<string>>, callback?: Function): Promise<*> {\n    const promises = keyValuePairs.map(item => AsyncStorage.mergeItem(item[0], item[1]));\n    return createPromiseAll(promises, callback);\n  }\n}\n"]},"metadata":{},"sourceType":"module"}