Skip to content

Commit

Permalink
Remove generated code from core package
Browse files Browse the repository at this point in the history
  • Loading branch information
simolus3 committed Oct 18, 2023
1 parent 79e75cb commit 2deee17
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 25 deletions.
82 changes: 62 additions & 20 deletions drift/lib/src/runtime/devtools/shared.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,14 @@
@internal
library;

import 'package:json_annotation/json_annotation.dart';
import 'package:meta/meta.dart';

import '../api/runtime_api.dart';
import '../query_builder/query_builder.dart';
import '../types/mapping.dart';

part 'shared.g.dart';

typedef JsonObject = Map<String, Object?>;

@JsonSerializable()
class TypeDescription {
final DriftSqlType? type;
final String? customTypeName;
Expand All @@ -28,16 +24,26 @@ class TypeDescription {
};
}

factory TypeDescription.fromJson(JsonObject obj) =>
_$TypeDescriptionFromJson(obj);
factory TypeDescription.fromJson(JsonObject obj) {
final typeName = obj['type'] as String?;

return TypeDescription(
type: typeName != null ? DriftSqlType.values.byName(typeName) : null,
customTypeName: obj['customTypeName'] as String?,
);
}

JsonObject toJson() => _$TypeDescriptionToJson(this);
JsonObject toJson() {
return {
'type': type?.name,
'customTypeName': customTypeName,
};
}
}

@JsonSerializable()
class ColumnDescription {
final String name;
final TypeDescription? type;
final TypeDescription type;
final bool isNullable;

ColumnDescription(
Expand All @@ -52,13 +58,23 @@ class ColumnDescription {
);
}

factory ColumnDescription.fromJson(JsonObject obj) =>
_$ColumnDescriptionFromJson(obj);
factory ColumnDescription.fromJson(JsonObject obj) {
return ColumnDescription(
name: obj['name'] as String,
type: TypeDescription.fromJson(obj['type'] as JsonObject),
isNullable: obj['isNullable'] as bool,
);
}

JsonObject toJson() => _$ColumnDescriptionToJson(this);
JsonObject toJson() {
return {
'name': name,
'type': type.toJson(),
'isNullable': isNullable,
};
}
}

@JsonSerializable()
class EntityDescription {
final String name;
final String type;
Expand Down Expand Up @@ -93,13 +109,28 @@ class EntityDescription {
);
}

factory EntityDescription.fromJson(JsonObject obj) =>
_$EntityDescriptionFromJson(obj);
factory EntityDescription.fromJson(JsonObject obj) {
return EntityDescription(
name: obj['name'] as String,
type: obj['type'] as String,
columns: (obj['columns'] as List<dynamic>)
.map((e) => ColumnDescription.fromJson(e as JsonObject))
.toList(),
);
}

JsonObject toJson() => _$EntityDescriptionToJson(this);
JsonObject toJson() {
return {
'name': name,
'type': type,
'columns': [
if (columns != null)
for (final column in columns!) column.toJson()
],
};
}
}

@JsonSerializable()
class DatabaseDescription {
final bool dateTimeAsText;
final List<EntityDescription> entities;
Expand All @@ -124,8 +155,19 @@ class DatabaseDescription {
);
}

factory DatabaseDescription.fromJson(JsonObject obj) =>
_$DatabaseDescriptionFromJson(obj);
factory DatabaseDescription.fromJson(JsonObject obj) {
return DatabaseDescription(
dateTimeAsText: obj['dateTimeAsText'] as bool,
entities: (obj['entities'] as List<dynamic>)
.map((e) => EntityDescription.fromJson(e as Map<String, dynamic>))
.toList(),
);
}

JsonObject toJson() => _$DatabaseDescriptionToJson(this);
JsonObject toJson() {
return <String, dynamic>{
'dateTimeAsText': dateTimeAsText,
'entities': [for (final entity in entities) entity.toJson()],
};
}
}
2 changes: 0 additions & 2 deletions drift/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ dependencies:
convert: ^3.0.0
collection: ^1.15.0
js: ^0.6.3
json_annotation: ^4.8.1
meta: ^1.3.0
stream_channel: ^2.1.0
sqlite3: ^2.0.0
Expand All @@ -25,7 +24,6 @@ dev_dependencies:
build_runner_core: ^7.0.0
build_verify: ^3.0.0
build_web_compilers: ^4.0.3
json_serializable: ^6.7.1
drift_dev: any
drift_testcases:
path: ../extras/integration_tests/drift_testcases
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class ViewerDatabase implements DbViewerDatabase {
@override
String getType(String entityName, String columnName) {
final type = database.description.entitiesByName[entityName]!
.columnsByName[columnName]!.type!;
.columnsByName[columnName]!.type;
final genContext = GenerationContext(
DriftDatabaseOptions(
storeDateTimeAsText: database.description.dateTimeAsText),
Expand All @@ -101,7 +101,7 @@ class ViewerDatabase implements DbViewerDatabase {
final resolvedColumn = entity.columnsByName[column];

if (resolvedColumn != null) {
final type = resolvedColumn.type?.type ?? DriftSqlType.any;
final type = resolvedColumn.type.type ?? DriftSqlType.any;

mappedRow[column] = types.read(type, value);
} else {
Expand Down
2 changes: 1 addition & 1 deletion extras/drift_devtools_extension/lib/src/list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ class _DatabaseListState extends ConsumerState<DatabaseList> {
class _DatabaseEntry extends ConsumerWidget {
final TrackedDatabase database;

const _DatabaseEntry({super.key, required this.database});
const _DatabaseEntry({required this.database});

@override
Widget build(BuildContext context, WidgetRef ref) {
Expand Down

0 comments on commit 2deee17

Please sign in to comment.