mirror of https://github.com/AMT-Cheif/drift.git
feat: Add option use_sql_column_name_as_json_key
This commit is contained in:
parent
ca0c70eac9
commit
707eb72b07
|
@ -45,13 +45,19 @@ class DriftOptions {
|
|||
defaultValue: true)
|
||||
final bool useColumnNameAsJsonKeyWhenDefinedInMoorFile;
|
||||
|
||||
/// Uses the sql column name as the json key instead of the name in dart.
|
||||
///
|
||||
/// Overrides [useColumnNameAsJsonKeyWhenDefinedInMoorFile] when set to `true`.
|
||||
@JsonKey(name: 'use_sql_column_name_as_json_key', defaultValue: false)
|
||||
final bool useSqlColumnNameAsJsonKey;
|
||||
|
||||
/// Generate a `connect` constructor in database superclasses.
|
||||
///
|
||||
/// This makes drift generate a constructor for database classes that takes a
|
||||
/// `DatabaseConnection` instead of just a `QueryExecutor` - meaning that
|
||||
/// stream queries can also be shared across multiple database instances.
|
||||
/// Starting from drift 2.5, the database connection class implements the
|
||||
/// `QueryExecutor` interface, making this option unecessary.
|
||||
/// `QueryExecutor` interface, making this option unnecessary.
|
||||
@JsonKey(name: 'generate_connect_constructor', defaultValue: false)
|
||||
final bool generateConnectConstructor;
|
||||
|
||||
|
@ -120,6 +126,7 @@ class DriftOptions {
|
|||
this.skipVerificationCode = false,
|
||||
this.useDataClassNameForCompanions = false,
|
||||
this.useColumnNameAsJsonKeyWhenDefinedInMoorFile = true,
|
||||
this.useSqlColumnNameAsJsonKey = false,
|
||||
this.generateConnectConstructor = false,
|
||||
this.dataClassToCompanions = true,
|
||||
this.generateMutableClasses = false,
|
||||
|
@ -147,6 +154,7 @@ class DriftOptions {
|
|||
required this.skipVerificationCode,
|
||||
required this.useDataClassNameForCompanions,
|
||||
required this.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
||||
required this.useSqlColumnNameAsJsonKey,
|
||||
required this.generateConnectConstructor,
|
||||
required this.dataClassToCompanions,
|
||||
required this.generateMutableClasses,
|
||||
|
|
|
@ -108,12 +108,13 @@ class DriftColumn implements HasType {
|
|||
/// The actual json key to use when serializing a data class of this table
|
||||
/// to json.
|
||||
///
|
||||
/// This respectts the [overriddenJsonName], if any, as well as [options].
|
||||
/// This respects the [overriddenJsonName], if any, as well as [options].
|
||||
String getJsonKey([DriftOptions options = const DriftOptions.defaults()]) {
|
||||
if (overriddenJsonName != null) return overriddenJsonName!;
|
||||
|
||||
final useColumnName = options.useColumnNameAsJsonKeyWhenDefinedInMoorFile &&
|
||||
declaredInDriftFile;
|
||||
final useColumnName = options.useSqlColumnNameAsJsonKey ||
|
||||
(options.useColumnNameAsJsonKeyWhenDefinedInMoorFile &&
|
||||
declaredInDriftFile);
|
||||
return useColumnName ? nameInSql : nameInDart;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
|||
'skip_verification_code',
|
||||
'use_data_class_name_for_companions',
|
||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||
'use_sql_column_name_as_json_key',
|
||||
'generate_connect_constructor',
|
||||
'sqlite_modules',
|
||||
'sqlite',
|
||||
|
@ -52,6 +53,8 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
|||
useColumnNameAsJsonKeyWhenDefinedInMoorFile: $checkedConvert(
|
||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||
(v) => v as bool? ?? true),
|
||||
useSqlColumnNameAsJsonKey: $checkedConvert(
|
||||
'use_sql_column_name_as_json_key', (v) => v as bool? ?? false),
|
||||
generateConnectConstructor: $checkedConvert(
|
||||
'generate_connect_constructor', (v) => v as bool? ?? false),
|
||||
dataClassToCompanions: $checkedConvert(
|
||||
|
@ -111,6 +114,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
|||
'useDataClassNameForCompanions': 'use_data_class_name_for_companions',
|
||||
'useColumnNameAsJsonKeyWhenDefinedInMoorFile':
|
||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||
'useSqlColumnNameAsJsonKey': 'use_sql_column_name_as_json_key',
|
||||
'generateConnectConstructor': 'generate_connect_constructor',
|
||||
'dataClassToCompanions': 'data_class_to_companions',
|
||||
'generateMutableClasses': 'mutable_classes',
|
||||
|
@ -143,6 +147,7 @@ Map<String, dynamic> _$DriftOptionsToJson(DriftOptions instance) =>
|
|||
instance.useDataClassNameForCompanions,
|
||||
'use_column_name_as_json_key_when_defined_in_moor_file':
|
||||
instance.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
||||
'use_sql_column_name_as_json_key': instance.useSqlColumnNameAsJsonKey,
|
||||
'generate_connect_constructor': instance.generateConnectConstructor,
|
||||
'sqlite_modules':
|
||||
instance.modules.map((e) => _$SqlModuleEnumMap[e]!).toList(),
|
||||
|
|
Loading…
Reference in New Issue