bavard 0.0.21
bavard: ^0.0.21 copied to clipboard
An Eloquent-inspired ORM for Flutter. Supports SQLite, PostgreSQL and PowerSync with fluent queries, relationships, soft deletes, timestamps, casts and more.
Changelog #
All notable changes to this project will be documented in this file.
[Unreleased] #
0.0.21 - 2025-12-27 #
0.0.18 - 2025-12-26 #
Added #
- Schema: Added
IdColumn,CreatedAtColumn,UpdatedAtColumn, andDeletedAtColumnto enable fully type-safe queries on standard fields. - Mixins: Added typed getters/setters (
createdAt,updatedAt,deletedAt) directly toHasTimestampsandHasSoftDeletesmixins. - QueryBuilder: Implemented dynamic column name resolution. Standard columns in the schema (e.g.
User.schema.id) now automatically resolve to the model's actual configuration (e.g.primaryKey) at runtime.
Improved #
- Generator: The
@fillablegenerator now intelligently ignores standard columns if the corresponding mixins are present, preventing code duplication and conflicts. - Schema: Refactored
Columnhierarchy to support polymorphic column lists viaSchemaColumninterface, fixing type variance issues in many-to-many pivots. - Documentation: Updated code generation guide to showcase the new concise schema definition style and explained standard column behavior.
Documentation #
- Core: Clarified that code generation is completely optional; Bavard is designed to work entirely at runtime using standard Dart syntax.
- Guides: Added comprehensive instructions for manual model and pivot class implementation (without
build_runner). - Home: Updated features list to highlight "Zero boilerplate", "Offline-first", and "Smart Data Casting".
- API Reference: Reorganized documentation to distinguish between core (included) and optional mixins.
0.0.17 - 2025-12-24 #
Added #
- Relations: Added
attach()anddetach()methods toBelongsToManyfor easy management of many-to-many relationships. - Examples: Added a comprehensive PostgreSQL + Docker integration test suite in
example/postgresql-docker. - Core: Allow
Columnobjects as keys ininsertandupdatemethods. - Tests: Added dedicated unit tests for
BelongsToManyattach/detach operations.
Improved #
- Core: Enhanced
QueryBuilder.avg()to robustly handle numeric string results, improving compatibility with PostgreSQL numeric types. - Examples: Refactored
sqlite-dockerandpostgresql-dockerexamples to eliminate raw SQL queries in favor of ORM-native methods.
Fixed #
- Core: Quote table and column names in SQL queries to prevent syntax errors.
Changed #
- Dependencies: Update project dependencies.
- Tests: Update mocks for database grammar wrap.
0.0.11 - 2025-12-24 #
0.0.10 - 2025-12-24 #
Added #
- Core: Enhanced
QueryBuilderwith comprehensive support forColumnobjects across all methods (select,where,groupBy,orderBy,count,sum, etc.), enabling fully type-safe queries. - Core: Added automatic table prefixing (e.g.,
"users"."id") when usingColumnobjects to prevent column ambiguity during joins. - Core: Added
whereColumnandorWhereColumnmethods for comparing two columns. - Core: Added
whereBetween,orWhereBetween,whereNotBetween, andorWhereNotBetweenmethods. - Relations: Added support for
Columnobjects inBelongsToManypivot filters (wherePivot,withPivot, etc.) with automatic pivot table prefixing. - Security: Added strict validation and helpful error messages when passing invalid arguments (like
WhereCondition) toQueryBuildermethods.
Fixed #
- Documentation: Fixed 404 error on API index page and improved navigation.
- Core: Fixed identifier quoting in aggregate functions for better dialect compatibility.
0.0.7 - 2025-12-24 #
Added #
- Core: Added Dirty Checking support to
Model(isDirty(),getDirty()) for optimized updates. - Relations: Added
hasManyThroughPolymorphicto natively support distant polymorphic relations. - Utils: Improved
singularizeutility to handle common English rules (e.g.-es,-ies, irregulars) without external dependencies. - Examples: Added a comprehensive SQLite + Docker integration test suite in
examples/sqlite-docker. - Documentation: Added detailed guides for "Constraining Relations", "Polymorphic HasManyThrough", and "Dirty Checking".
0.0.6 - 2025-12-23 #
Added #
- Relations: Added support for nested relations (e.g.,
user.posts.comments) in eager loading and querying.
0.0.5 - 2025-12-23 #
Changed #
- Documentation: Updated import examples in guide and index page.
- Core: Removed unused imports and cleaned up code.
0.0.4 - 2025-12-23 #
Added #
- Pivots: Added typed pivot support for many-to-many relations, allowing type-safe access to pivot data.
- Pivots: Allowed retrieving extra pivot columns without requiring a custom pivot class definition.
- Documentation: Added reference implementations for database adapters.
Changed #
- Core: Reworked attribute casting and hydration logic for better performance and reliability.
- Core: Refactored code generation annotations and logic for consistency.
- Pivots: Improved pivot type casting and added setter support.
- Pivots: Updated pivot schema definitions to use static records for cleaner syntax.
0.0.3 - 2025-12-23 #
Added #
- Core: Introduced
Grammarstrategy pattern for SQL dialect abstraction, supporting SQLite and Postgres. - Core: Implemented AST-based schema parser for fillable generator.
- Documentation: Added initial project documentation with VitePress.
- CI: Added GitHub Actions workflow to deploy documentation.
Changed #
- Core: Overhauled
whereclause with typed column objects and conditions. - Core: Refactored imports and exports for cleaner library structure.