Skip to content

Commit 38ea25f

Browse files
kevin-dpclaude
andcommitted
feat: SQLite persistence core
Add core SQLite persistence packages: - db-sqlite-persisted-collection-core: shared adapter, runtime, tx pruning, coordinator protocol - db-browser-wa-sqlite-persisted-collection: browser persistence via wa-sqlite (OPFS) with multi-tab coordinator - db-react-native-sqlite-persisted-collection: React Native/Expo persistence via expo-sqlite - db: index lifecycle events, removeIndex API, hydration support Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a452ca7 commit 38ea25f

83 files changed

Lines changed: 16688 additions & 22 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/e2e-tests.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
e2e-tests:
1010
name: Run E2E Tests
1111
runs-on: ubuntu-latest
12-
timeout-minutes: 10
12+
timeout-minutes: 35
1313

1414
steps:
1515
- name: Checkout code
@@ -62,6 +62,43 @@ jobs:
6262
env:
6363
ELECTRIC_URL: http://localhost:3000
6464

65+
- name: Run React Native/Expo persisted collection E2E tests
66+
run: |
67+
cd packages/db-react-native-sqlite-persisted-collection
68+
pnpm test:e2e
69+
70+
- name: Run React Native/Expo runtime E2E lane
71+
run: |
72+
is_fork_pr=false
73+
require_runtime_lane=${TANSTACK_DB_REQUIRE_MOBILE_RUNTIME_LANE:-0}
74+
if [ "${GITHUB_EVENT_NAME}" = "pull_request" ]; then
75+
is_fork_pr=$(jq -r '.pull_request.head.repo.fork' "${GITHUB_EVENT_PATH}")
76+
fi
77+
78+
if [ "${is_fork_pr}" = "true" ]; then
79+
echo "Skipping runtime mobile lane for fork PR (repo vars are unavailable)."
80+
exit 0
81+
fi
82+
83+
if [ -z "${TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE}" ]; then
84+
if [ "${require_runtime_lane}" = "1" ]; then
85+
echo "::error::Missing repository variable TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE while TANSTACK_DB_REQUIRE_MOBILE_RUNTIME_LANE=1."
86+
echo "::error::Set TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE (and optional TANSTACK_DB_MOBILE_SQLITE_FACTORY_EXPORT)."
87+
exit 1
88+
fi
89+
90+
echo "Skipping runtime mobile lane (no TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE configured)."
91+
echo "Set TANSTACK_DB_REQUIRE_MOBILE_RUNTIME_LANE=1 to enforce this lane."
92+
exit 0
93+
fi
94+
95+
cd packages/db-react-native-sqlite-persisted-collection
96+
pnpm test:e2e:runtime
97+
env:
98+
TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE: ${{ vars.TANSTACK_DB_MOBILE_SQLITE_FACTORY_MODULE }}
99+
TANSTACK_DB_MOBILE_SQLITE_FACTORY_EXPORT: ${{ vars.TANSTACK_DB_MOBILE_SQLITE_FACTORY_EXPORT }}
100+
TANSTACK_DB_REQUIRE_MOBILE_RUNTIME_LANE: ${{ vars.TANSTACK_DB_REQUIRE_MOBILE_RUNTIME_LANE }}
101+
65102
- name: Stop Docker services
66103
if: always()
67104
run: |

0 commit comments

Comments
 (0)