Giter Club home page Giter Club logo

nosqlprovider's Introduction

NoSQLProvider Build Status

We developed NoSQLProvider after needing a simplified interface to NoSQL-style object storage/retrieval that worked not only across all browsers, but also for native app development (initially Cordova-based, later moving to React Native.) Across the browsers, this required unifying WebSQL and IndexedDB, with the nuances of all the different IndexedDB issues (on IE, mostly, with not properly supporting compound keys and multi-entry indexes, and Safari having basically completely broken keyspace support.) On native platforms and NodeJS, we fully wrap several different SQLite-based providers, depending on the platform. We also have built a fully in-memory database provider that has no persistence but supports fully transactional semantics, for a fallback in situations where you don't want persistence (ephemeral logins, etc.)

At this point, known feature work is complete and we are mostly just fixing bugs on the platform moving forward. If you have feature requests, feel free to file them, just make sure that you have behavior determined across all providers as part of your request, since all features need to be able to work across all the different providers.

Examples

The only current full example is available as part of the ReactXP samples, the TodoList sample app. If you pick up NoSQLProvider and use it in your open source application, please let us know so we can add more example links here!

Providers/Platforms/Support

We will soon list all of the providers available out of the box here, and list what platforms they can be used on, with any nuances of that platform.

Usage

Coming soon.

Compiling

Source

yarn install
yarn build

Tests

yarn install
yarn webtest

Testing

  1. Compile tests
  2. Open test.html in browser
  3. You can add ?grep=foo to the URL to run only tests containing 'foo' in the name

nosqlprovider's People

Contributors

berickson1 avatar boguscoder avatar dependabot[bot] avatar deregtd avatar dryganets avatar erictraut avatar joshuahenson avatar mariarek avatar masterkidan avatar microsoft-github-policy-service[bot] avatar ms-deregtd avatar ms-markda avatar rspeyer avatar vancems avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nosqlprovider's Issues

Add a method to clear a store

There is currently a clearAllData method to clear all data, but there is no way to clear a particular data store without enumerating the existing data.

iOS Web Incompatibility

Hi team,

WebSQL support was dropped in Safari 13. I'd assumed that my app was using IndexedDB on web iOS devices as my provider order was IndexedDB first, however that isn't compatible.

LocalDB's output on both Safari and Chrome on iOS 13.3:

// 'nosqlprovider/dist/IndexedDbProvider'
Provider 0: Open Failure: "Safari doesn't properly implement IndexedDB"
// 'nosqlprovider/dist/WebSqlProvider'
Provider 1: Open Failure: "No support for WebSQL in this browser"

You can replicate this in the Todo List Example.

In Memory provider works, but that's not ideal due to lack of persistence.

The workaround for the time being is to re-enable WebSQL on iOS (Settings > Safari > Advanced > Disable ‘Disable Web SQL’), but I assume that will only work for so long.

I just wanted to bring this to your attention as nosqlprovider was working well with this setup, but no longer is due to Apple's decision to remove WebSQL support.

From my limited information, it seems as though Safari on MacOS works, but I don't have the means to confirm.

I appreciate your hard work in everything related to ReactXP.

Confusing messaging ...

It's a bit disconcerting that the rest of the docs enthusiastically refer to this lib as one of the selling points for ReactXP, but one arrives here only to find the message:

"For now, I would suggest not using this yet, as it requires some more work."

It would be nice if more information could be provided as to whether and when using this lib could be contemplated, what are the issues requiring work etc.

just sayin'.

Is this production-ready?

I've encountered this library through reactxp samples, I was wondering if it's stable enough to be actually used in a production environment. Also the travis-ci build is failing
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.