Monorepo for all things React Native and PowerSync.
-
- An Expo React native app using Supabase.
-
- A Typescript implementation of a PowerSync database connector and streaming sync bucket implementation.
-
packages/powersync-sdk-react-native
- An extension of
packages/powersync-sdk-common
which provides React Native specific implementations of abstracted features.
- An extension of
After cloning this repo be sure to init the Git submodules
git submodule init && git submodule update
This monorepo uses Yarn as it works well with React native.
Install workspace dependencies
yarn install
Build packages
yarn build:packages
Development packages can be published by manually triggering the dev-packages
workflow. Development packages are versioned as 0.0.0-{tag}-DATETIMESTAMP
.
Pull requests should contain Changesets for changed packages.
Add changesets with
yarn changeset add
Merging a PR with Changesets will automatically create a PR with version bumps. That PR will be merged when releasing.
Testing live development changes to @journeyapps/react-native-quick-sqlite
will not with with standard yarn link
commands. Metro does not work well with symlinks facebook/metro#286.
The process of releasing development packages for @journeyapps/react-native-quick-sqlite
for each change can be tedious and slow. A faster (and hackier) method is to use mtsl which will watch and copy the package into this workspace's node_modules
.
npm install -g mtsl
mtsl add -s "[source path to your react-native-quick-sqlite repo folder]" -d "[this workspaces root node_modules folder]"/@journeyapps/react-native-quick-sqlite
mtsl start "[the id returned from step above]"
cd apps/supabase-todolist
Test on either Android or iOS
yarn ios