data-connect — Architecture
The @mnemose/data-connect package contains the auto-generated Firebase Data Connect SDK for Mnemose. Source files in src/ are generated by firebase dataconnect:sdk:generate and must not be edited by hand. The SDK provides type-safe database access bindings for Postgres / Cloud SQL operations only — the Data Connect datasource is configured as postgresql with a Cloud SQL instance in dataconnect/dataconnect.yaml; Firestore is not used by this package.
Responsibilities
- Publish generated Firebase Data Connect type bindings and query methods
- Provide dual-module (ESM / CommonJS) export targets for consumers across runtime contexts
- Export TypeScript type definitions for all generated queries and mutations
Key Components
| File | Role |
|---|---|
src/index.esm.js | ESM export target — re-exports generated query and mutation functions |
src/index.cjs.js | CommonJS export target for Node.js consumers |
src/index.d.ts | TypeScript declarations for all generated types |
Dependencies
@firebase/data-connect— official Firebase Data Connect runtime library- Peer dependency:
firebase(>=11.0.0)
Data Flow
firebase dataconnect:sdk:generate (CLI) ↓ reads dataconnect/schema/schema.gql + connectors/ ↓ emits src/index.{esm,cjs}.js + src/index.d.tsconsumers ↓ import { queryX, mutateY } from "@mnemose/data-connect" ↓ Data Connect runtime → Cloud SQL Postgres (private IP)Conventions and Constraints
- Do not edit files in
src/by hand. Regenerate viapnpm generate. - Run
pnpm type-checkbefore committing to validate generated types. - Regeneration is part of the normal development workflow whenever
dataconnect/schema/schema.gqlchanges.