-
Notifications
You must be signed in to change notification settings - Fork 55
feat(op-sqlite): allow extensions to be loaded #469
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
Conversation
🦋 Changeset detectedLatest commit: 3fd07ff The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
We should probably add some notes to the readme or docs about this feature. For the example in the PR description, we could use an API from OP-SQLite for the iOS extension path: |
@stevensJourney great points. I've implemented |
@rkistner and @stevensJourney I needed to revert the change of using |
aa1fb53
to
4d42566
Compare
@stevensJourney, @Chriztiaan and @rkistner this PR has been updated. Please can you re-review when you get a chance. |
Description
Allow additional sqlite extensions to be loaded by users as requested here #452 (comment).
This includes and
extensions
option insqliteOptions
which would look something like this to the userIt also removes the use of
getBundlePath
in favor of getDylibPathWe can't remove the entire Turbo Module because it includes the
powersync-sqlite-core
module for users without them needing to manually include it.Testing
I excluded the powersync extension from being loaded in the
powersync-op-sqlite
library and used the above to include it from the client side in the react native supabase todolist demo. The powersync extension was loaded correctly. I also tested the case where a user does not include any extensions.I also ran a dev release and installed into an isolated react-native-supabase-todolist demo for both iOS and Android and it worked.