@r3l/app
Version:
238 lines (192 loc) • 5.73 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.get = get;
exports.remove = remove;
exports.set = set;
exports.getToken = getToken;
exports.isDismissed = exports.removeToken = exports.setToken = exports.local = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var userDefaults;
var cookie;
var localStorage;
if (process.env.WEB !== 'true') {
userDefaults = require('react-native-swiss-knife').RNSKBucket;
} else {
var Cookies = process.env.BROWSER && process.env.NODE_ENV !== 'test' ? require('universal-cookie').default : require('universal-cookie');
cookie = new Cookies();
if (process.env.BROWSER) localStorage = window.localStorage;
}
var APP_GROUP_ID = 'group.com.4real.relevant';
var token;
var local = localStorage;
exports.local = local;
function get(key) {
return new Promise(function (resolve, reject) {
if (userDefaults) {
return userDefaults.get(key, APP_GROUP_ID).then(function (val) {
if (val) {
return resolve(val);
}
return resolve(null);
}).catch(function (err) {
return reject(err);
});
} // WEB
var val = cookie.get(key, {
path: '/'
});
if (val) {
return resolve(val);
}
return resolve(null);
});
}
function remove(key) {
if (userDefaults) {
return new Promise(function (resolve) {
userDefaults.remove(key, APP_GROUP_ID);
resolve();
});
}
return new Promise(function (resolve) {
cookie.remove(key, {
path: '/'
});
resolve();
});
}
function set(key, val) {
if (userDefaults) {
return new Promise(function (resolve) {
userDefaults.set(key, String(val), APP_GROUP_ID);
resolve();
});
}
return new Promise(function (resolve) {
cookie.set(key, val, {
path: '/'
});
resolve();
});
}
function getToken() {
return new Promise(function (resolve, reject) {
if (token) return resolve(token);
if (userDefaults) {
return userDefaults.get('token', APP_GROUP_ID).then(function (newToken) {
if (newToken) {
token = newToken;
return resolve(token);
}
return resolve(null);
}).catch(function (err) {
return reject(err);
});
} // WEB
var newToken = cookie.get('token', {
path: '/'
});
if (newToken) {
token = newToken;
return resolve(token);
}
return resolve(token); // reject(new Error('not logged in'));
});
}
var setToken = /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(newToken) {
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
token = newToken;
set('token', newToken);
case 2:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function setToken(_x) {
return _ref.apply(this, arguments);
};
}();
exports.setToken = setToken;
var removeToken = /*#__PURE__*/function () {
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
token = null;
console.log('REMOVING TOKEN!'); // eslint-disable-line
remove('token');
case 3:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function removeToken() {
return _ref2.apply(this, arguments);
};
}(); // Expects unix timecode
exports.removeToken = removeToken;
var isTimecodeExpired = function isTimecodeExpired(date, days) {
var now = new Date().getTime();
var diff = Math.abs(now - Number(date));
var ONE_DAY = 1000 * 60 * 60 * 24;
return diff > days * ONE_DAY;
};
var isDismissed = /*#__PURE__*/function () {
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(key, days) {
var dismissed;
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
_context3.next = 3;
return get(key);
case 3:
dismissed = _context3.sent;
_context3.next = 9;
break;
case 6:
_context3.prev = 6;
_context3.t0 = _context3["catch"](0);
return _context3.abrupt("return", false);
case 9:
if (dismissed) {
_context3.next = 11;
break;
}
return _context3.abrupt("return", false);
case 11:
if (!isTimecodeExpired(Number(dismissed), days)) {
_context3.next = 14;
break;
}
remove(key);
return _context3.abrupt("return", false);
case 14:
return _context3.abrupt("return", true);
case 15:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[0, 6]]);
}));
return function isDismissed(_x2, _x3) {
return _ref3.apply(this, arguments);
};
}();
exports.isDismissed = isDismissed;
//# sourceMappingURL=storage.js.map