prisma_flutter_connector 0.1.1
prisma_flutter_connector: ^0.1.1 copied to clipboard
A type-safe Flutter connector for Prisma backends. Generate Dart models and type-safe APIs from your Prisma schema with support for PostgreSQL, MySQL, SQLite, and Supabase.
Changelog #
All notable changes to the Prisma Flutter Connector.
[Unreleased] #
0.1.1 - 2025-12-14 #
Added #
- Automated publishing via GitHub Actions (OIDC authentication)
- pub.dev package metadata (topics, homepage, repository)
Changed #
- Renamed
docs/todoc/(pub.dev convention) - Renamed
examples/toexample/(pub.dev convention) - Renamed
Readme.mdtoREADME.md(pub.dev convention)
Removed #
- Removed prisma-submodule (not needed for package users)
0.1.0 - 2025-12-14 #
π MAJOR: Architecture Transformation - True Prisma-Style ORM for Dart #
This release represents a revolutionary transformation from a GraphQL client generator to a true Prisma-style ORM for Dart/Flutter - enabling direct database access similar to how Prisma works in TypeScript/Next.js!
β¨ Added - Direct Database Access #
Database Adapter System
SqlDriverAdapterinterface - Database-agnostic query executionPostgresAdapter- Direct PostgreSQL connection (postgrespackage)SupabaseAdapter- Direct Supabase connection (no backend!)SQLiteAdapter- Mobile offline-first support (sqflite)- Full transaction support with ACID guarantees
- Connection pooling and type conversion
Query System
- JSON Protocol - Prisma's query protocol in pure Dart
- SQL Compiler - Converts JSON queries β Parameterized SQL
- Query Executor - Runtime execution with type-safe results
- Filter Operators - WHERE clauses (equals, in, contains, lt, gt, etc.)
β Validated with Real Database #
All CRUD operations tested and working with Supabase:
- β CREATE - Insert with UUID generation
- β READ - findMany, findUnique with complex filters
- β UPDATE - Modify records
- β DELETE - Remove records
- β COUNT - Aggregate queries
- β FILTER - Complex WHERE with AND/OR/NOT
- β Transactions - Atomic operations with rollback
π Key Benefits #
- No Backend Required - Connect directly from Dart to databases
- Offline-First - SQLite adapter for mobile apps
- Type-Safe - Parameterized queries with full type conversion
- Database-Agnostic - Swap adapters without code changes
- Better Performance - No HTTP/GraphQL overhead
- Familiar DX - Same API as Prisma in TypeScript
π¦ New Dependencies #
dependencies:
postgres: ^3.0.0 # PostgreSQL support
sqflite: ^2.3.0 # Mobile SQLite support
supabase_flutter: ^2.5.0 # Supabase integration
π New Files #
Runtime Library:
lib/runtime.dart- Main runtime exportlib/src/runtime/adapters/types.dart- Core typeslib/src/runtime/adapters/postgres_adapter.dartlib/src/runtime/adapters/supabase_adapter.dartlib/src/runtime/adapters/sqlite_adapter.dartlib/src/runtime/query/json_protocol.dartlib/src/runtime/query/sql_compiler.dartlib/src/runtime/query/query_executor.dart
Examples & Tests:
test/validation/crud_validation.dart- Full CRUD validationexample/adapter_example.dart- Usage examples
π» Usage Example #
import 'package:prisma_flutter_connector/runtime.dart';
import 'package:postgres/postgres.dart' as pg;
// Connect to database
final connection = await pg.Connection.open(
pg.Endpoint(host: 'localhost', database: 'mydb'),
);
final adapter = PostgresAdapter(connection);
final executor = QueryExecutor(adapter: adapter);
// Build query
final query = JsonQueryBuilder()
.model('User')
.action(QueryAction.findMany)
.where({'email': FilterOperators.contains('@example.com')})
.orderBy({'createdAt': 'desc'})
.build();
// Execute
final users = await executor.executeQueryAsMaps(query);
print('Found ${users.length} users');
πΊοΈ Roadmap #
Phase 3: Code Generation (Next)
- Update generator to produce adapter-based client
- Type-safe generated client from Prisma schema
- Auto-generated CRUD methods per model
Phase 4: Advanced Features
- Relation loading (include, select)
- Nested writes
- Aggregations (avg, sum, min, max)
- Raw SQL queries
Phase 5: Publication
- pub.dev release
- Comprehensive documentation
- Example applications
0.1.0 - 2025-11-01 #
Added #
- Initial release of Prisma Flutter Connector
- GraphQL client integration using Ferry
- Type-safe models with Freezed
- E-commerce example (Product, Order, User models)
- Basic CRUD operations (queries and mutations)
- Error handling with custom exceptions
- Backend example using Prisma + Pothos + Apollo Server
- Comprehensive documentation
Architecture #
- GraphQL API protocol (chosen over REST for better Prisma integration)
- Pothos for GraphQL schema generation from Prisma
- Ferry for type-safe Dart code generation
- No offline caching in v0.1.0 (planned for v0.2.0)