https://github.com/prsn/redux-persist-sqlite-storage
A redux-persist store adaptor that uses SQLite to persist store
https://github.com/prsn/redux-persist-sqlite-storage
redux-persist sqlite
Last synced: 3 days ago
JSON representation
A redux-persist store adaptor that uses SQLite to persist store
- Host: GitHub
- URL: https://github.com/prsn/redux-persist-sqlite-storage
- Owner: prsn
- License: mit
- Created: 2018-03-27T18:52:57.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-02-17T07:20:20.000Z (over 7 years ago)
- Last Synced: 2025-08-09T14:55:17.935Z (10 months ago)
- Topics: redux-persist, sqlite
- Language: JavaScript
- Homepage:
- Size: 153 KB
- Stars: 41
- Watchers: 3
- Forks: 7
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# redux-persist-sqlite-storage
A redux-persist store adaptor which uses SQLite database to persist store.
# Motivation
By default redux-persist uses `AsyncStorage` as storage engine in react-native. This is a drop-in replacemet of `AsyncStorage`.
The library is inspired by `react-native-sqlite-storage`.
# Install
```bash
npm install --save redux-persist-sqlite-storage
```
Please do follow the installation steps to install `react-native-sqlite-storage`.
# Usages
First configure SQLite from below link
1. https://github.com/andpor/react-native-sqlite-storage
Follow below steps after you have successfully configured the SQLite
```Javascript
import SQLiteStorage from 'redux-persist-sqlite-storage';
import SQLite from 'react-native-sqlite-storage';
// Considering SQLite object is defined / imported
// Pass any valid configuration as `config` parameter applied to react-native-sqlite-storage as per above link
const storeEngine = SQLiteStorage(SQLite, config);
// Now pass the storeEngine as value of store while configuring redux-persist
const persistConfig = {
...
store: storeEngine
}
```
Please note that, the `config` object will take any valid configuration as accepted by `react-native-sqlite-storage`.
The default configuration only consider `name` and `location`
```Javascript
const defaultConfig = {
name: 'sqlite-storage',
location: 'default'
};
```
The object return by `SQLiteStorage` function has 5 methods and each of the method returns `Promise` as well as callback upon completion of any operation (compatable with redux-persist 5.x.x version)
Following functions are supported
```Javascript
getItem(key: string, [callback]: ?(error: ?Error, result: ?string) => void)
```
```Javascript
setitem(key: string, value: string, [callback]: ?(error: ?Error) => void)
```
```Javascript
removeItem(key: string, [callback]: ?(error: ?Error) => void)
```
```Javascript
getAllKeys([callback]: ?(error: ?Error, keys: ?Array) => void)
```
```Javascript
clear([callback]: ?(error: ?Error) => void)
```
Above methods confirms to `AsyncStorage` method signatures
# Tested under following enviornments
Examples are located at `examples\rn` directory
1. `redux-persist@4.5.0`
2. `redux-persist@5.9.1`
# Future enhancements
Will support all of the methods supported by AsyncStorage.