-
Notifications
You must be signed in to change notification settings - Fork 714
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible redesign (new version) #548
Comments
From #547 (comment):
It would probably take me several weeks to make a decent working prototype. I do not expect to have any time before December 2016. |
Major redesign will definitely not be part of the upcoming major release (#687), still keeping open for future consideration. An additional goal of the redesign will be support for other frameworks such as React Native and possibly Nativescript. |
Additional item could be to support user defined functions (#741) - not expected to be practical on Cordova for reasons described that issue. |
Also adding that as discussed in #576 (comment) and #576 (comment) SQL.js would likely be suitable for the browser platform. |
The ultimate solution may be to divide the SQLite functionality as follows:
Benefits would include:
Pluggable persistence part could work with Cordova File API plugin, W3 File API, possibly even IndexedDB, etc. This means no more Cordova sqlite plugin needed, a nice step towards the "ultimate purpose of PhoneGap" [4]:
[1] https://sqlite.org/arch.html P.S. This idea would also solve the problems with named parameters (#717) and user defined functions (#741) |
Closing this issue in favor of the discussion in #862. |
This plugin does its job reasonably well but is complex to maintain. It would be nice to break it down into smaller components that would be easier to maintain, possibly by different people in the future. In case of such a "redesign" it should be able to almost completely pass the existing test suite.
One idea could be to start with the JavaScript part from https://github.com/nolanlawson/cordova-plugin-sqlite-2 (ref: #547) and move the native parts into one or more separate projects.
Another idea would be to turn this around: start with a mostly-native sqlite3 storage part with an API similar to https://github.com/mapbox/node-sqlite3 and then move the Web SQL API part to a pure-JS shim (or just use something like https://github.com/nolanlawson/node-websql). The one drawback with this idea is that it would need https://github.com/kripken/sql.js/ to work in the
browser
platform.A major goal in case of a redesign would be to keep the native parts as blocks that could be reassembled more easily to provide special versions such as SQLCipher without the need to keep merging new fixes.
The text was updated successfully, but these errors were encountered: