mirror of https://github.com/AMT-Cheif/drift.git
Fix resolving Dart code in drift files
This commit is contained in:
parent
348ac2e910
commit
331d600df3
|
@ -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
|
||||
|
|
|
@ -17,8 +17,7 @@ class Config extends DataClass implements Insertable<Config> {
|
|||
this.configValue,
|
||||
this.syncState,
|
||||
this.syncStateImplicit});
|
||||
factory Config.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory Config.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return Config(
|
||||
configKey: const StringType()
|
||||
|
@ -270,7 +269,7 @@ class ConfigTable extends Table with TableInfo<ConfigTable, Config> {
|
|||
Set<GeneratedColumn> get $primaryKey => {configKey};
|
||||
@override
|
||||
Config map(Map<String, dynamic> 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<WithDefault> {
|
|||
final String? a;
|
||||
final int? b;
|
||||
WithDefault({this.a, this.b});
|
||||
factory WithDefault.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory WithDefault.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return WithDefault(
|
||||
a: const StringType()
|
||||
|
@ -455,7 +453,7 @@ class WithDefaults extends Table with TableInfo<WithDefaults, WithDefault> {
|
|||
Set<GeneratedColumn> get $primaryKey => <GeneratedColumn>{};
|
||||
@override
|
||||
WithDefault map(Map<String, dynamic> 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<WithConstraint> {
|
|||
final int b;
|
||||
final double? c;
|
||||
WithConstraint({this.a, required this.b, this.c});
|
||||
factory WithConstraint.fromData(
|
||||
Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory WithConstraint.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return WithConstraint(
|
||||
a: const StringType()
|
||||
|
@ -760,7 +756,7 @@ class WithConstraints extends Table
|
|||
Set<GeneratedColumn> get $primaryKey => <GeneratedColumn>{};
|
||||
@override
|
||||
WithConstraint map(Map<String, dynamic> 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<MytableData> {
|
|||
final DateTime? somedate;
|
||||
MytableData(
|
||||
{required this.someid, this.sometext, this.isInserting, this.somedate});
|
||||
factory MytableData.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory MytableData.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return MytableData(
|
||||
someid: const IntType()
|
||||
|
@ -1023,7 +1018,7 @@ class Mytable extends Table with TableInfo<Mytable, MytableData> {
|
|||
Set<GeneratedColumn> get $primaryKey => {someid};
|
||||
@override
|
||||
MytableData map(Map<String, dynamic> 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<EMail> {
|
|||
final String title;
|
||||
final String body;
|
||||
EMail({required this.sender, required this.title, required this.body});
|
||||
factory EMail.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory EMail.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return EMail(
|
||||
sender: const StringType()
|
||||
|
@ -1237,7 +1231,7 @@ class Email extends Table
|
|||
Set<GeneratedColumn> get $primaryKey => <GeneratedColumn>{};
|
||||
@override
|
||||
EMail map(Map<String, dynamic> 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<WeirdData> {
|
|||
final int sqlClass;
|
||||
final String textColumn;
|
||||
WeirdData({required this.sqlClass, required this.textColumn});
|
||||
factory WeirdData.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory WeirdData.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return WeirdData(
|
||||
sqlClass: const IntType()
|
||||
|
@ -1424,7 +1417,7 @@ class WeirdTable extends Table with TableInfo<WeirdTable, WeirdData> {
|
|||
Set<GeneratedColumn> get $primaryKey => <GeneratedColumn>{};
|
||||
@override
|
||||
WeirdData map(Map<String, dynamic> data, {String? tablePrefix}) {
|
||||
return WeirdData.fromData(data, _db,
|
||||
return WeirdData.fromData(data,
|
||||
prefix: tablePrefix != null ? '$tablePrefix.' : null);
|
||||
}
|
||||
|
||||
|
|
|
@ -19,8 +19,7 @@ class TodoEntry extends DataClass implements Insertable<TodoEntry> {
|
|||
required this.content,
|
||||
this.targetDate,
|
||||
this.category});
|
||||
factory TodoEntry.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory TodoEntry.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return TodoEntry(
|
||||
id: const IntType()
|
||||
|
@ -290,7 +289,7 @@ class $TodosTableTable extends TodosTable
|
|||
Set<GeneratedColumn> get $primaryKey => {id};
|
||||
@override
|
||||
TodoEntry map(Map<String, dynamic> 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<Category> {
|
|||
final CategoryPriority priority;
|
||||
Category(
|
||||
{required this.id, required this.description, required this.priority});
|
||||
factory Category.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory Category.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return Category(
|
||||
id: const IntType()
|
||||
|
@ -507,7 +505,7 @@ class $CategoriesTable extends Categories
|
|||
Set<GeneratedColumn> get $primaryKey => {id};
|
||||
@override
|
||||
Category map(Map<String, dynamic> 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<User> {
|
|||
required this.isAwesome,
|
||||
required this.profilePicture,
|
||||
required this.creationTime});
|
||||
factory User.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory User.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return User(
|
||||
id: const IntType()
|
||||
|
@ -803,7 +800,7 @@ class $UsersTable extends Users with TableInfo<$UsersTable, User> {
|
|||
Set<GeneratedColumn> get $primaryKey => {id};
|
||||
@override
|
||||
User map(Map<String, dynamic> 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<SharedTodo> {
|
|||
final int todo;
|
||||
final int user;
|
||||
SharedTodo({required this.todo, required this.user});
|
||||
factory SharedTodo.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory SharedTodo.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return SharedTodo(
|
||||
todo: const IntType()
|
||||
|
@ -981,7 +977,7 @@ class $SharedTodosTable extends SharedTodos
|
|||
Set<GeneratedColumn> get $primaryKey => {todo, user};
|
||||
@override
|
||||
SharedTodo map(Map<String, dynamic> 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<PureDefault> {
|
||||
final String? txt;
|
||||
PureDefault({this.txt});
|
||||
factory PureDefault.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String? prefix}) {
|
||||
factory PureDefault.fromData(Map<String, dynamic> data, {String? prefix}) {
|
||||
final effectivePrefix = prefix ?? '';
|
||||
return PureDefault(
|
||||
txt: const StringType()
|
||||
|
@ -1266,7 +1261,7 @@ class $PureDefaultsTable extends PureDefaults
|
|||
Set<GeneratedColumn> get $primaryKey => {txt};
|
||||
@override
|
||||
PureDefault map(Map<String, dynamic> data, {String? tablePrefix}) {
|
||||
return PureDefault.fromData(data, _db,
|
||||
return PureDefault.fromData(data,
|
||||
prefix: tablePrefix != null ? '$tablePrefix.' : null);
|
||||
}
|
||||
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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']);
|
||||
|
|
|
@ -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<String, List<String>> buildExtensions = const {
|
||||
'.moor': ['.temp.dart', '.dart_in_moor'],
|
||||
late final Map<String, List<String>> 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));
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -11,8 +11,7 @@ class User extends DataClass implements Insertable<User> {
|
|||
final int id;
|
||||
final String name;
|
||||
User({@required this.id, @required this.name});
|
||||
factory User.fromData(Map<String, dynamic> data, GeneratedDatabase db,
|
||||
{String prefix}) {
|
||||
factory User.fromData(Map<String, dynamic> 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<Users, User> {
|
|||
Set<GeneratedColumn> get $primaryKey => {id};
|
||||
@override
|
||||
User map(Map<String, dynamic> data, {String tablePrefix}) {
|
||||
return User.fromData(data, _db,
|
||||
return User.fromData(data,
|
||||
prefix: tablePrefix != null ? '$tablePrefix.' : null);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue