Socket
Socket
Sign inDemoInstall

@fuadop/react-native-store

Package Overview
Dependencies
0
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @fuadop/react-native-store

A simple database base on react-native AsyncStorage.


Version published
Weekly downloads
4
increased by300%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

react-native-store

Build Status npm version NPM downloads

A simple database base on react-native AsyncStorage.

Installation

$ npm install react-native-store --save

Upgrading from previous version? Check for breaking-changes.

Data anatomy

db_store
   |---model_name
         |---totalrows (variable)
         |---autoinc (variable)
         |---rows (array)
                |--- _id (number)
                |--- ....

API

  • Model( modelName ) : returns a Model object
  • Model.add( data, filter ) : returns a promise object
  • Model.update( data, filter ) : returns a promise object
  • Model.updateById( data, id ) : returns a promise object
  • Model.remove( filter ) : returns a promise object
  • Model.removeById( id ) : returns a promise object
  • Model.find( filter ) : returns a promise object
  • Model.findById( id ) : returns a promise object
  • Model.get( filter ) : returns a promise object
  • Model.destroy() : returns a promise object

Simple example

import Store from 'react-native-store';

const DB = {
    'foo': Store.model('foo'),
    'bar': Store.model('bar')
}

// somewhere inside react components

componentDidMount() {
    // Return all items
    DB.foo.find().then(resp => this.setState({items: resp}));
}

handleFilter(itemName) {
    DB.foo.find({
        where: {
            and: [{ foo: { neq: itemName } }, { age: { gte: 5 } }]
        },
        order: {
            age: 'ASC',
        }
    }).then(resp => this.setState({items: resp}));
}

handleOnPress() {
    DB.bar.add({
        foo: 'foo',
        bar: 'bar',
        age: 12
    });
}

Advanced Filtering

Filtering adds more advanced logic to queries. This implementation is heavily based off of LoopBack's implementation. However, there are some important things that are different/leftout:

  • The include filter is not implemented as it is not relevant.
  • The near and like/nlike operators are not implemented.
  • The skip filter in LoopBack is the offset filter in this implementation to stay consistent with previous versions.

Note: Query operations on object nested within an entry are not perfect. For example, trying to update an entry that looks something like this:

{
  location: { name: 'place', distance: 'far' }
}

With this as the value of a where filter:

{
  location: { name: 'place' }
}

Will overwrite the value of location, effectively removing the distance property. This occurs similarly with the order and fields filter, as you can only apply the filters to values that are not nested within an object.

Contributing

  • Fork this Repo first
  • Clone your Repo
  • Install dependencies by $ npm install
  • Checkout develop branch
  • Feel free to add your features
  • Make sure your features are fully tested
  • Publish your local branch, Open a pull request
  • Enjoy hacking <3

Keywords

FAQs

Last updated on 22 Dec 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc