https://github.com/baughmann/react-native-use-database
A basic in-state database that is persisted by `AsyncStorage`.
https://github.com/baughmann/react-native-use-database
Last synced: 9 months ago
JSON representation
A basic in-state database that is persisted by `AsyncStorage`.
- Host: GitHub
- URL: https://github.com/baughmann/react-native-use-database
- Owner: baughmann
- License: mit
- Created: 2020-01-20T20:52:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-20T21:42:34.000Z (almost 6 years ago)
- Last Synced: 2025-04-01T19:00:00.757Z (9 months ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/react-native-use-database
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# React Native useDatabase
A wrapper around a React `state` and `AsyncStorage` that basically creates an in-memory database that stays synced with a collection in `AsyncStorage`.
### Setup
First, add it to your project as you normally would.
`$ yarn add react-native-use-database`
Make sure to also add the peer dependencies: `@react-native-community/async-storage` and `uuid`:
`$ yarn add @react-native-community/async-storage uuid`
Finally, you can import it into your project.
`import useDatabase from "react-native-use-database";`
### Example Useage
#### Creating the database
Next, simply use the hook as so.
`const Database = useDatabase('my_somethings');`
#### Listing and finding items
All items exist as an in-memory array that you can access simply by interacting with `Database.items` like so:
```
const someItem = Database.items.find(item => item.firstName === "Snuffy")
```
#### Inserting items
You can insert an item simply by calling `Database.insert(someItem)`. If your item does not have an `id` property, then the `insert()` function will generate a UUID string for you and return it:
```
const itemId: string = await Database.insert(someItem);
```
#### Updating items
To update an item, simply call `await Database.update(someItem)`. The database will find an item in the database that has the same `id` as the one you passed to the `update()` function and will overwrite it with the one you passed.
#### Removing items
Removing an item is as easy as passing the ID of the item you wish to remove: `await Database.remove(someItemId)`.
#### Replacing the entire collection
If you're refreshing the database with a list you got from somewhere else, or if you're re-ordering the list, then you can overwrite the entire database by calling `await Database.overwrite(myNewArrayOfItems)`.
### Note
Don't let the database get too big. Neither `state` nor `AsyncStorage` is a good way to manage a large list, or a list of large objects. For everyday useage, though, you shouldn't have any problems.