mirror of https://github.com/AMT-Cheif/drift.git
Prepare analysis for views
This commit is contained in:
parent
5508a9f246
commit
ac52957848
|
@ -0,0 +1,21 @@
|
|||
import 'package:sqlparser/sqlparser.dart';
|
||||
|
||||
import '../../driver/state.dart';
|
||||
import '../../results/results.dart';
|
||||
import '../intermediate_state.dart';
|
||||
import 'element_resolver.dart';
|
||||
|
||||
class DriftViewResolver extends DriftElementResolver<DiscoveredDriftView> {
|
||||
DriftViewResolver(super.file, super.discovered, super.resolver, super.state);
|
||||
|
||||
@override
|
||||
Future<DriftView> resolve() async {
|
||||
final stmt = discovered.createView;
|
||||
final references = await resolveSqlReferences(stmt);
|
||||
final engine = newEngineWithTables(references);
|
||||
|
||||
final source = (file.discovery as DiscoveredDriftFile).originalSource;
|
||||
final context = engine.analyzeNode(stmt, source);
|
||||
reportLints(context);
|
||||
}
|
||||
}
|
|
@ -6,3 +6,4 @@ export 'result_sets.dart';
|
|||
export 'table.dart';
|
||||
export 'trigger.dart';
|
||||
export 'types.dart';
|
||||
export 'view.dart';
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
import 'package:drift_dev/src/analysis/results/dart.dart';
|
||||
|
||||
import 'package:drift_dev/src/analysis/results/column.dart';
|
||||
|
||||
import 'result_sets.dart';
|
||||
|
||||
class DriftView extends DriftElementWithResultSet {
|
||||
@override
|
||||
final List<DriftColumn> columns;
|
||||
|
||||
final DriftViewSource source;
|
||||
|
||||
@override
|
||||
final AnnotatedDartCode? customParentClass;
|
||||
|
||||
@override
|
||||
String entityInfoName;
|
||||
|
||||
@override
|
||||
ExistingRowClass? existingRowClass;
|
||||
|
||||
DriftView(
|
||||
super.id,
|
||||
super.declaration, {
|
||||
required this.columns,
|
||||
required this.source,
|
||||
required this.customParentClass,
|
||||
required this.entityInfoName,
|
||||
required this.existingRowClass,
|
||||
});
|
||||
}
|
||||
|
||||
abstract class DriftViewSource {}
|
Loading…
Reference in New Issue