@react-native-async-storage/async-storage
Version:
Asynchronous, persistent, key-value storage system for React Native.
69 lines (57 loc) • 2.24 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkValidArgs = checkValidArgs;
exports.checkValidInput = checkValidInput;
exports.convertError = convertError;
exports.convertErrors = convertErrors;
function checkValidArgs(keyValuePairs, callback) {
if (!Array.isArray(keyValuePairs) || keyValuePairs.length === 0 || !Array.isArray(keyValuePairs[0])) {
throw new Error('[AsyncStorage] Expected array of key-value pairs as first argument to multiSet');
}
if (callback && typeof callback !== 'function') {
if (Array.isArray(callback)) {
throw new Error('[AsyncStorage] Expected function as second argument to multiSet. Did you forget to wrap key-value pairs in an array for the first argument?');
}
throw new Error('[AsyncStorage] Expected function as second argument to multiSet');
}
}
function checkValidInput() {
for (var _len = arguments.length, input = new Array(_len), _key = 0; _key < _len; _key++) {
input[_key] = arguments[_key];
}
const [key, value] = input;
if (typeof key !== 'string') {
console.warn(`[AsyncStorage] Using ${typeof key} type for key is not supported. This can lead to unexpected behavior/errors. Use string instead.\nKey passed: ${key}\n`);
}
if (input.length > 1 && typeof value !== 'string') {
if (value == null) {
throw new Error(`[AsyncStorage] Passing null/undefined as value is not supported. If you want to remove value, Use .removeItem method instead.\nPassed value: ${value}\nPassed key: ${key}\n`);
} else {
console.warn(`[AsyncStorage] The value for key "${key}" is not a string. This can lead to unexpected behavior/errors. Consider stringifying it.\nPassed value: ${value}\nPassed key: ${key}\n`);
}
}
}
function convertError(error) {
if (!error) {
return null;
}
const out = new Error(error.message);
out.key = error.key;
return out;
}
function convertErrors(errs) {
const errors = ensureArray(errs);
return errors ? errors.map(e => convertError(e)) : null;
}
function ensureArray(e) {
if (Array.isArray(e)) {
return e.length === 0 ? null : e;
} else if (e) {
return [e];
} else {
return null;
}
}
//# sourceMappingURL=helpers.js.map
;