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 'table.dart';
|
||||||
export 'trigger.dart';
|
export 'trigger.dart';
|
||||||
export 'types.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