InstallationController.js 937 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. "use strict";
  2. var _Storage = _interopRequireDefault(require("./Storage"));
  3. function _interopRequireDefault(obj) {
  4. return obj && obj.__esModule ? obj : {
  5. default: obj
  6. };
  7. }
  8. /**
  9. * @flow
  10. */
  11. const uuidv4 = require('./uuid');
  12. let iidCache = null;
  13. const InstallationController = {
  14. currentInstallationId() /*: Promise<string>*/{
  15. if (typeof iidCache === 'string') {
  16. return Promise.resolve(iidCache);
  17. }
  18. const path = _Storage.default.generatePath('installationId');
  19. return _Storage.default.getItemAsync(path).then(iid => {
  20. if (!iid) {
  21. iid = uuidv4();
  22. return _Storage.default.setItemAsync(path, iid).then(() => {
  23. iidCache = iid;
  24. return iid;
  25. });
  26. }
  27. iidCache = iid;
  28. return iid;
  29. });
  30. },
  31. _clearCache() {
  32. iidCache = null;
  33. },
  34. _setInstallationIdCache(iid /*: string*/) {
  35. iidCache = iid;
  36. }
  37. };
  38. module.exports = InstallationController;