StorageController.react-native.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /**
  2. * Copyright (c) 2015-present, Parse, LLC.
  3. * All rights reserved.
  4. *
  5. * This source code is licensed under the BSD-style license found in the
  6. * LICENSE file in the root directory of this source tree. An additional grant
  7. * of patent rights can be found in the PATENTS file in the same directory.
  8. *
  9. * @flow
  10. */
  11. import CoreManager from './CoreManager';
  12. const StorageController = {
  13. async: 1,
  14. getAsyncStorage()
  15. /*: any*/
  16. {
  17. return CoreManager.getAsyncStorage();
  18. },
  19. getItemAsync(path
  20. /*: string*/
  21. )
  22. /*: Promise*/
  23. {
  24. return new Promise((resolve, reject) => {
  25. this.getAsyncStorage().getItem(path, function (err, value) {
  26. if (err) {
  27. reject(err);
  28. } else {
  29. resolve(value);
  30. }
  31. });
  32. });
  33. },
  34. setItemAsync(path
  35. /*: string*/
  36. , value
  37. /*: string*/
  38. )
  39. /*: Promise*/
  40. {
  41. return new Promise((resolve, reject) => {
  42. this.getAsyncStorage().setItem(path, value, function (err, value) {
  43. if (err) {
  44. reject(err);
  45. } else {
  46. resolve(value);
  47. }
  48. });
  49. });
  50. },
  51. removeItemAsync(path
  52. /*: string*/
  53. )
  54. /*: Promise*/
  55. {
  56. return new Promise((resolve, reject) => {
  57. this.getAsyncStorage().removeItem(path, function (err) {
  58. if (err) {
  59. reject(err);
  60. } else {
  61. resolve();
  62. }
  63. });
  64. });
  65. },
  66. getAllKeys()
  67. /*: Promise*/
  68. {
  69. return new Promise((resolve, reject) => {
  70. this.getAsyncStorage().getAllKeys(function (err, keys) {
  71. if (err) {
  72. reject(err);
  73. } else {
  74. resolve(keys);
  75. }
  76. });
  77. });
  78. },
  79. multiGet(keys
  80. /*: Array<string>*/
  81. )
  82. /*: Promise<Array<Array<string>>>*/
  83. {
  84. return new Promise((resolve, reject) => {
  85. this.getAsyncStorage().multiGet(keys, function (err, result) {
  86. if (err) {
  87. reject(err);
  88. } else {
  89. resolve(result);
  90. }
  91. });
  92. });
  93. },
  94. multiRemove(keys
  95. /*: Array<string>*/
  96. )
  97. /*: Promise*/
  98. {
  99. return new Promise((resolve, reject) => {
  100. this.getAsyncStorage().multiRemove(keys, function (err) {
  101. if (err) {
  102. reject(err);
  103. } else {
  104. resolve(keys);
  105. }
  106. });
  107. });
  108. },
  109. clear() {
  110. return this.getAsyncStorage().clear();
  111. }
  112. };
  113. module.exports = StorageController;