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)
|
defaultValue: true)
|
||||||
final bool useColumnNameAsJsonKeyWhenDefinedInMoorFile;
|
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.
|
/// Generate a `connect` constructor in database superclasses.
|
||||||
///
|
///
|
||||||
/// This makes drift generate a constructor for database classes that takes a
|
/// This makes drift generate a constructor for database classes that takes a
|
||||||
/// `DatabaseConnection` instead of just a `QueryExecutor` - meaning that
|
/// `DatabaseConnection` instead of just a `QueryExecutor` - meaning that
|
||||||
/// stream queries can also be shared across multiple database instances.
|
/// stream queries can also be shared across multiple database instances.
|
||||||
/// Starting from drift 2.5, the database connection class implements the
|
/// 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)
|
@JsonKey(name: 'generate_connect_constructor', defaultValue: false)
|
||||||
final bool generateConnectConstructor;
|
final bool generateConnectConstructor;
|
||||||
|
|
||||||
|
@ -120,6 +126,7 @@ class DriftOptions {
|
||||||
this.skipVerificationCode = false,
|
this.skipVerificationCode = false,
|
||||||
this.useDataClassNameForCompanions = false,
|
this.useDataClassNameForCompanions = false,
|
||||||
this.useColumnNameAsJsonKeyWhenDefinedInMoorFile = true,
|
this.useColumnNameAsJsonKeyWhenDefinedInMoorFile = true,
|
||||||
|
this.useSqlColumnNameAsJsonKey = false,
|
||||||
this.generateConnectConstructor = false,
|
this.generateConnectConstructor = false,
|
||||||
this.dataClassToCompanions = true,
|
this.dataClassToCompanions = true,
|
||||||
this.generateMutableClasses = false,
|
this.generateMutableClasses = false,
|
||||||
|
@ -147,6 +154,7 @@ class DriftOptions {
|
||||||
required this.skipVerificationCode,
|
required this.skipVerificationCode,
|
||||||
required this.useDataClassNameForCompanions,
|
required this.useDataClassNameForCompanions,
|
||||||
required this.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
required this.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
||||||
|
required this.useSqlColumnNameAsJsonKey,
|
||||||
required this.generateConnectConstructor,
|
required this.generateConnectConstructor,
|
||||||
required this.dataClassToCompanions,
|
required this.dataClassToCompanions,
|
||||||
required this.generateMutableClasses,
|
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
|
/// The actual json key to use when serializing a data class of this table
|
||||||
/// to json.
|
/// 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()]) {
|
String getJsonKey([DriftOptions options = const DriftOptions.defaults()]) {
|
||||||
if (overriddenJsonName != null) return overriddenJsonName!;
|
if (overriddenJsonName != null) return overriddenJsonName!;
|
||||||
|
|
||||||
final useColumnName = options.useColumnNameAsJsonKeyWhenDefinedInMoorFile &&
|
final useColumnName = options.useSqlColumnNameAsJsonKey ||
|
||||||
declaredInDriftFile;
|
(options.useColumnNameAsJsonKeyWhenDefinedInMoorFile &&
|
||||||
|
declaredInDriftFile);
|
||||||
return useColumnName ? nameInSql : nameInDart;
|
return useColumnName ? nameInSql : nameInDart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
||||||
'skip_verification_code',
|
'skip_verification_code',
|
||||||
'use_data_class_name_for_companions',
|
'use_data_class_name_for_companions',
|
||||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||||
|
'use_sql_column_name_as_json_key',
|
||||||
'generate_connect_constructor',
|
'generate_connect_constructor',
|
||||||
'sqlite_modules',
|
'sqlite_modules',
|
||||||
'sqlite',
|
'sqlite',
|
||||||
|
@ -52,6 +53,8 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
||||||
useColumnNameAsJsonKeyWhenDefinedInMoorFile: $checkedConvert(
|
useColumnNameAsJsonKeyWhenDefinedInMoorFile: $checkedConvert(
|
||||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||||
(v) => v as bool? ?? true),
|
(v) => v as bool? ?? true),
|
||||||
|
useSqlColumnNameAsJsonKey: $checkedConvert(
|
||||||
|
'use_sql_column_name_as_json_key', (v) => v as bool? ?? false),
|
||||||
generateConnectConstructor: $checkedConvert(
|
generateConnectConstructor: $checkedConvert(
|
||||||
'generate_connect_constructor', (v) => v as bool? ?? false),
|
'generate_connect_constructor', (v) => v as bool? ?? false),
|
||||||
dataClassToCompanions: $checkedConvert(
|
dataClassToCompanions: $checkedConvert(
|
||||||
|
@ -111,6 +114,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
|
||||||
'useDataClassNameForCompanions': 'use_data_class_name_for_companions',
|
'useDataClassNameForCompanions': 'use_data_class_name_for_companions',
|
||||||
'useColumnNameAsJsonKeyWhenDefinedInMoorFile':
|
'useColumnNameAsJsonKeyWhenDefinedInMoorFile':
|
||||||
'use_column_name_as_json_key_when_defined_in_moor_file',
|
'use_column_name_as_json_key_when_defined_in_moor_file',
|
||||||
|
'useSqlColumnNameAsJsonKey': 'use_sql_column_name_as_json_key',
|
||||||
'generateConnectConstructor': 'generate_connect_constructor',
|
'generateConnectConstructor': 'generate_connect_constructor',
|
||||||
'dataClassToCompanions': 'data_class_to_companions',
|
'dataClassToCompanions': 'data_class_to_companions',
|
||||||
'generateMutableClasses': 'mutable_classes',
|
'generateMutableClasses': 'mutable_classes',
|
||||||
|
@ -143,6 +147,7 @@ Map<String, dynamic> _$DriftOptionsToJson(DriftOptions instance) =>
|
||||||
instance.useDataClassNameForCompanions,
|
instance.useDataClassNameForCompanions,
|
||||||
'use_column_name_as_json_key_when_defined_in_moor_file':
|
'use_column_name_as_json_key_when_defined_in_moor_file':
|
||||||
instance.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
instance.useColumnNameAsJsonKeyWhenDefinedInMoorFile,
|
||||||
|
'use_sql_column_name_as_json_key': instance.useSqlColumnNameAsJsonKey,
|
||||||
'generate_connect_constructor': instance.generateConnectConstructor,
|
'generate_connect_constructor': instance.generateConnectConstructor,
|
||||||
'sqlite_modules':
|
'sqlite_modules':
|
||||||
instance.modules.map((e) => _$SqlModuleEnumMap[e]!).toList(),
|
instance.modules.map((e) => _$SqlModuleEnumMap[e]!).toList(),
|
||||||
|
|
Loading…
Reference in New Issue