@react-native-async-storage/async-storage
Version:
Asynchronous, persistent, key-value storage system for React Native.
118 lines (117 loc) • 5.29 kB
TypeScript
export declare type ErrorLike = {
message: string;
key: string;
};
export declare type Callback = (error?: Error | null) => void;
export declare type CallbackWithResult<T> = (error?: Error | null, result?: T | null) => void;
export declare type KeyValuePair = [string, string | null];
export declare type MultiCallback = (errors?: readonly (Error | null)[] | null) => void;
export declare type MultiGetCallback = (errors?: readonly (Error | null)[] | null, result?: readonly KeyValuePair[]) => void;
export declare type MultiRequest = {
keys: readonly string[];
callback?: MultiGetCallback;
keyIndex: number;
resolve?: (result: readonly KeyValuePair[]) => void;
reject?: (error?: any) => void;
};
export declare type AsyncStorageHook = {
getItem: (callback?: CallbackWithResult<string>) => Promise<string | null>;
setItem: (value: string, callback?: Callback) => Promise<void>;
mergeItem: (value: string, callback?: Callback) => Promise<void>;
removeItem: (callback?: Callback) => Promise<void>;
};
/**
* `AsyncStorage` is a simple, unencrypted, asynchronous, persistent, key-value
* storage system that is global to the app. It should be used instead of
* LocalStorage.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api
*/
export declare type AsyncStorageStatic = {
/**
* Fetches an item for a `key` and invokes a callback upon completion.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#getitem
*/
getItem: (key: string, callback?: CallbackWithResult<string>) => Promise<string | null>;
/**
* Sets the value for a `key` and invokes a callback upon completion.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#setitem
*/
setItem: (key: string, value: string, callback?: Callback) => Promise<void>;
/**
* Removes an item for a `key` and invokes a callback upon completion.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#removeitem
*/
removeItem: (key: string, callback?: Callback) => Promise<void>;
/**
* Merges an existing `key` value with an input value, assuming both values
* are stringified JSON.
*
* **NOTE:** This is not supported by all native implementations.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#mergeitem
*/
mergeItem?: (key: string, value: string, callback?: Callback) => Promise<void>;
/**
* Erases *all* `AsyncStorage` for all clients, libraries, etc. You probably
* don't want to call this; use `removeItem` or `multiRemove` to clear only
* your app's keys.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#clear
*/
clear: (callback?: Callback) => Promise<void>;
/**
* Gets *all* keys known to your app; for all callers, libraries, etc.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#getallkeys
*/
getAllKeys: (callback?: CallbackWithResult<readonly string[]>) => Promise<readonly string[]>;
/**
* The following batched functions are useful for executing a lot of
* operations at once, allowing for native optimizations and provide the
* convenience of a single callback after all operations are complete.
*
* These functions return arrays of errors, potentially one for every key.
* For key-specific errors, the Error object will have a key property to
* indicate which key caused the error.
*/
/**
* Flushes any pending requests using a single batch call to get the data.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#flushgetrequests
* */
flushGetRequests: () => void;
/**
* This allows you to batch the fetching of items given an array of `key`
* inputs. Your callback will be invoked with an array of corresponding
* key-value pairs found.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#multiget
*/
multiGet: (keys: string[], callback?: MultiGetCallback) => Promise<readonly KeyValuePair[]>;
/**
* Use this as a batch operation for storing multiple key-value pairs. When
* the operation completes you'll get a single callback with any errors.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#multiset
*/
multiSet: (keyValuePairs: [string, string][], callback?: MultiCallback) => Promise<void>;
/**
* Call this to batch the deletion of all keys in the `keys` array.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#multiremove
*/
multiRemove: (keys: string[], callback?: MultiCallback) => Promise<void>;
/**
* Batch operation to merge in existing and new values for a given set of
* keys. This assumes that the values are stringified JSON.
*
* **NOTE**: This is not supported by all native implementations.
*
* See https://react-native-async-storage.github.io/async-storage/docs/api#multimerge
*/
multiMerge?: (keyValuePairs: [string, string][], callback?: MultiCallback) => Promise<void>;
};