Skip to content

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

FileRole
src/index.esm.jsESM export target — re-exports generated query and mutation functions
src/index.cjs.jsCommonJS export target for Node.js consumers
src/index.d.tsTypeScript 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.ts
consumers
↓ 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 via pnpm generate.
  • Run pnpm type-check before committing to validate generated types.
  • Regeneration is part of the normal development workflow whenever dataconnect/schema/schema.gql changes.