diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a2685597..aa39ea8f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,12 +44,12 @@ jobs: retention-days: 1 moor: - name: "moor package" + name: "drift package" needs: [compile_sqlite3] runs-on: ubuntu-20.04 defaults: run: - working-directory: moor + working-directory: drift steps: # setup - uses: actions/checkout@v2 @@ -82,11 +82,11 @@ jobs: # moor/.dart_tool/package_config.json # retention-days: 1 - moor_generator: + drift_dev: runs-on: ubuntu-20.04 defaults: run: - working-directory: moor_generator + working-directory: drift_dev steps: # setup - uses: actions/checkout@v2 diff --git a/drift/test/data/tables/custom_tables.g.dart b/drift/test/data/tables/custom_tables.g.dart index 52f1ee30..ab2f72ad 100644 --- a/drift/test/data/tables/custom_tables.g.dart +++ b/drift/test/data/tables/custom_tables.g.dart @@ -17,8 +17,7 @@ class Config extends DataClass implements Insertable { this.configValue, this.syncState, this.syncStateImplicit}); - factory Config.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory Config.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return Config( configKey: const StringType() @@ -270,7 +269,7 @@ class ConfigTable extends Table with TableInfo { Set get $primaryKey => {configKey}; @override Config map(Map data, {String? tablePrefix}) { - return Config.fromData(data, _db, + return Config.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -290,8 +289,7 @@ class WithDefault extends DataClass implements Insertable { final String? a; final int? b; WithDefault({this.a, this.b}); - factory WithDefault.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory WithDefault.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return WithDefault( a: const StringType() @@ -455,7 +453,7 @@ class WithDefaults extends Table with TableInfo { Set get $primaryKey => {}; @override WithDefault map(Map data, {String? tablePrefix}) { - return WithDefault.fromData(data, _db, + return WithDefault.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -565,9 +563,7 @@ class WithConstraint extends DataClass implements Insertable { final int b; final double? c; WithConstraint({this.a, required this.b, this.c}); - factory WithConstraint.fromData( - Map data, GeneratedDatabase db, - {String? prefix}) { + factory WithConstraint.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return WithConstraint( a: const StringType() @@ -760,7 +756,7 @@ class WithConstraints extends Table Set get $primaryKey => {}; @override WithConstraint map(Map data, {String? tablePrefix}) { - return WithConstraint.fromData(data, _db, + return WithConstraint.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -783,8 +779,7 @@ class MytableData extends DataClass implements Insertable { final DateTime? somedate; MytableData( {required this.someid, this.sometext, this.isInserting, this.somedate}); - factory MytableData.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory MytableData.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return MytableData( someid: const IntType() @@ -1023,7 +1018,7 @@ class Mytable extends Table with TableInfo { Set get $primaryKey => {someid}; @override MytableData map(Map data, {String? tablePrefix}) { - return MytableData.fromData(data, _db, + return MytableData.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -1043,8 +1038,7 @@ class EMail extends DataClass implements Insertable { final String title; final String body; EMail({required this.sender, required this.title, required this.body}); - factory EMail.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory EMail.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return EMail( sender: const StringType() @@ -1237,7 +1231,7 @@ class Email extends Table Set get $primaryKey => {}; @override EMail map(Map data, {String? tablePrefix}) { - return EMail.fromData(data, _db, + return EMail.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -1256,8 +1250,7 @@ class WeirdData extends DataClass implements Insertable { final int sqlClass; final String textColumn; WeirdData({required this.sqlClass, required this.textColumn}); - factory WeirdData.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory WeirdData.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return WeirdData( sqlClass: const IntType() @@ -1424,7 +1417,7 @@ class WeirdTable extends Table with TableInfo { Set get $primaryKey => {}; @override WeirdData map(Map data, {String? tablePrefix}) { - return WeirdData.fromData(data, _db, + return WeirdData.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } diff --git a/drift/test/data/tables/todos.g.dart b/drift/test/data/tables/todos.g.dart index c4f7bd22..881dbe19 100644 --- a/drift/test/data/tables/todos.g.dart +++ b/drift/test/data/tables/todos.g.dart @@ -19,8 +19,7 @@ class TodoEntry extends DataClass implements Insertable { required this.content, this.targetDate, this.category}); - factory TodoEntry.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory TodoEntry.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return TodoEntry( id: const IntType() @@ -290,7 +289,7 @@ class $TodosTableTable extends TodosTable Set get $primaryKey => {id}; @override TodoEntry map(Map data, {String? tablePrefix}) { - return TodoEntry.fromData(data, _db, + return TodoEntry.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -306,8 +305,7 @@ class Category extends DataClass implements Insertable { final CategoryPriority priority; Category( {required this.id, required this.description, required this.priority}); - factory Category.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory Category.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return Category( id: const IntType() @@ -507,7 +505,7 @@ class $CategoriesTable extends Categories Set get $primaryKey => {id}; @override Category map(Map data, {String? tablePrefix}) { - return Category.fromData(data, _db, + return Category.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -532,8 +530,7 @@ class User extends DataClass implements Insertable { required this.isAwesome, required this.profilePicture, required this.creationTime}); - factory User.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory User.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return User( id: const IntType() @@ -803,7 +800,7 @@ class $UsersTable extends Users with TableInfo<$UsersTable, User> { Set get $primaryKey => {id}; @override User map(Map data, {String? tablePrefix}) { - return User.fromData(data, _db, + return User.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -817,8 +814,7 @@ class SharedTodo extends DataClass implements Insertable { final int todo; final int user; SharedTodo({required this.todo, required this.user}); - factory SharedTodo.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory SharedTodo.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return SharedTodo( todo: const IntType() @@ -981,7 +977,7 @@ class $SharedTodosTable extends SharedTodos Set get $primaryKey => {todo, user}; @override SharedTodo map(Map data, {String? tablePrefix}) { - return SharedTodo.fromData(data, _db, + return SharedTodo.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } @@ -1133,8 +1129,7 @@ class $TableWithoutPKTable extends TableWithoutPK class PureDefault extends DataClass implements Insertable { final String? txt; PureDefault({this.txt}); - factory PureDefault.fromData(Map data, GeneratedDatabase db, - {String? prefix}) { + factory PureDefault.fromData(Map data, {String? prefix}) { final effectivePrefix = prefix ?? ''; return PureDefault( txt: const StringType() @@ -1266,7 +1261,7 @@ class $PureDefaultsTable extends PureDefaults Set get $primaryKey => {txt}; @override PureDefault map(Map data, {String? tablePrefix}) { - return PureDefault.fromData(data, _db, + return PureDefault.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); } diff --git a/drift_dev/build.yaml b/drift_dev/build.yaml index 92438614..7b8712c4 100644 --- a/drift_dev/build.yaml +++ b/drift_dev/build.yaml @@ -14,7 +14,9 @@ builders: preparing_builder: import: "package:drift_dev/integrations/build.dart" builder_factories: ["preparingBuilder"] - build_extensions: {".moor": [".temp.dart", ".dart_in_moor"]} + build_extensions: + ".moor": [".temp.dart", ".dart_in_moor"] + ".drift": [".temp.dart", ".dart_in_moor"] build_to: cache auto_apply: dependents applies_builders: ["drift_dev|cleanup"] diff --git a/drift_dev/lib/integrations/build.dart b/drift_dev/lib/integrations/build.dart index 110df91e..80961904 100644 --- a/drift_dev/lib/integrations/build.dart +++ b/drift_dev/lib/integrations/build.dart @@ -8,7 +8,8 @@ Builder moorBuilder(BuilderOptions options) => Builder moorBuilderNotShared(BuilderOptions options) => MoorPartBuilder(options, isForNewDriftPackage: true); -Builder preparingBuilder(BuilderOptions options) => PreprocessBuilder(); +Builder preparingBuilder(BuilderOptions options) => + PreprocessBuilder(isForNewDriftPackage: true); PostProcessBuilder moorCleanup(BuilderOptions options) { return const FileDeletingBuilder(['.temp.dart']); diff --git a/drift_dev/lib/src/backends/build/preprocess_builder.dart b/drift_dev/lib/src/backends/build/preprocess_builder.dart index 37f6facf..1abaad10 100644 --- a/drift_dev/lib/src/backends/build/preprocess_builder.dart +++ b/drift_dev/lib/src/backends/build/preprocess_builder.dart @@ -24,9 +24,16 @@ import 'package:sqlparser/sqlparser.dart'; /// moor file. The main generator can then read the `.dart_in_moor` file to /// resolve those expressions. class PreprocessBuilder extends Builder { + static const _outputs = ['.temp.dart', '.dart_in_moor']; + + final bool isForNewDriftPackage; + + PreprocessBuilder({this.isForNewDriftPackage = false}); + @override - final Map> buildExtensions = const { - '.moor': ['.temp.dart', '.dart_in_moor'], + late final Map> buildExtensions = { + '.moor': _outputs, + if (isForNewDriftPackage) '.drift': _outputs }; @override @@ -61,7 +68,7 @@ class PreprocessBuilder extends Builder { if (!seenFiles.contains(asset)) { seenFiles.add(asset); - if (asset.extension == '.moor') { + if (asset.extension == '.moor' || asset.extension == '.drift') { final parsed = asset == input ? parsedInput : engine.parseMoorFile(await buildStep.readAsString(asset)); diff --git a/drift_dev/lib/src/writer/tables/data_class_writer.dart b/drift_dev/lib/src/writer/tables/data_class_writer.dart index ec564092..0ad481d7 100644 --- a/drift_dev/lib/src/writer/tables/data_class_writer.dart +++ b/drift_dev/lib/src/writer/tables/data_class_writer.dart @@ -85,7 +85,8 @@ class DataClassWriter { final dataClassName = table.dartTypeName; // The GeneratedDatabase db parameter is not actually used, but we need to // keep it on tables for backwards compatibility. - final includeUnusedDbColumn = table is MoorTable; + final includeUnusedDbColumn = + scope.generationOptions.writeForMoorPackage && table is MoorTable; _buffer ..write('factory $dataClassName.fromData') diff --git a/drift_dev/lib/src/writer/tables/table_writer.dart b/drift_dev/lib/src/writer/tables/table_writer.dart index e3bb5012..65a7f161 100644 --- a/drift_dev/lib/src/writer/tables/table_writer.dart +++ b/drift_dev/lib/src/writer/tables/table_writer.dart @@ -185,7 +185,8 @@ abstract class TableOrViewWriter { buffer.write(';\n'); } else { // Use default .fromData constructor in the moor-generated data class - final hasDbParameter = tableOrView is MoorTable; + final hasDbParameter = scope.generationOptions.writeForMoorPackage && + tableOrView is MoorTable; if (hasDbParameter) { buffer.write('return $dataClassName.fromData(data, _db, ' "prefix: tablePrefix != null ? '\$tablePrefix.' : null);\n"); diff --git a/extras/with_built_value/lib/database.drift.dart b/extras/with_built_value/lib/database.drift.dart index 8de97ea2..d38e03a5 100644 --- a/extras/with_built_value/lib/database.drift.dart +++ b/extras/with_built_value/lib/database.drift.dart @@ -11,8 +11,7 @@ class User extends DataClass implements Insertable { final int id; final String name; User({@required this.id, @required this.name}); - factory User.fromData(Map data, GeneratedDatabase db, - {String prefix}) { + factory User.fromData(Map data, {String prefix}) { final effectivePrefix = prefix ?? ''; return User( id: const IntType().mapFromDatabaseResponse(data['${effectivePrefix}id']), @@ -172,7 +171,7 @@ class Users extends Table with TableInfo { Set get $primaryKey => {id}; @override User map(Map data, {String tablePrefix}) { - return User.fromData(data, _db, + return User.fromData(data, prefix: tablePrefix != null ? '$tablePrefix.' : null); }