🚚 Rename column_name_case into case_from_dart_to_sql

This commit is contained in:
ValentinVignal 2022-12-03 15:55:58 +08:00
parent b08088ab1b
commit 496635afb5
No known key found for this signature in database
GPG Key ID: 040FFDADFB7EF05A
6 changed files with 49 additions and 41 deletions

View File

@ -71,7 +71,7 @@ At the moment, drift supports these options:
Dart placeholders.
* `store_date_time_values_as_text`: Whether date-time columns should be stored as ISO 8601 string instead of a unix timestamp.
For more information on these modes, see [datetime options]({{ '../Getting started/advanced_dart_tables#datetime-options' | pageUrl }}).
* `column_name_case` (defaults to `snake_case`): Controls how the column names are re-cased from the Dart identifiers.
* `case_from_dart_to_sql` (defaults to `snake_case`): Controls how the table and column names are re-cased from the Dart identifiers.
The possible values are `preserve`, `camelCase`, `CONSTANT_CASE`, `snake_case`, `PascalCase`, `lowercase` and `UPPERCASE` (default: `snake_case`).
## Assumed SQL environment

View File

@ -1,7 +1,7 @@
## 2.4.0-dev
- Add the support for `textEnum`.
- Adds the `column_name_case` option with the possible values: `preserve`, `camelCase`, `CONSTANT_CASE`, `snake_case`, `PascalCase`, `lowercase` and `UPPERCASE` (default: `snake_case`).
- Adds the `case_from_dart_to_sql` option with the possible values: `preserve`, `camelCase`, `CONSTANT_CASE`, `snake_case`, `PascalCase`, `lowercase` and `UPPERCASE` (default: `snake_case`).
## 2.3.2

View File

@ -90,8 +90,8 @@ class DriftOptions {
@JsonKey(defaultValue: false)
final bool storeDateTimeValuesAsText;
@JsonKey(name: 'column_name_case', defaultValue: ColumnNameCase.snake)
final ColumnNameCase columnNameCase;
@JsonKey(name: 'case_from_dart_to_sql', defaultValue: CaseFromDartToSql.snake)
final CaseFromDartToSql caseFromDartToSql;
@internal
const DriftOptions.defaults({
@ -113,7 +113,7 @@ class DriftOptions {
this.sqliteAnalysisOptions,
this.storeDateTimeValuesAsText = false,
this.dialect = const DialectOptions(SqlDialect.sqlite, null),
this.columnNameCase = ColumnNameCase.snake,
this.caseFromDartToSql = CaseFromDartToSql.snake,
});
DriftOptions({
@ -134,7 +134,7 @@ class DriftOptions {
required this.modules,
required this.sqliteAnalysisOptions,
required this.storeDateTimeValuesAsText,
required this.columnNameCase,
required this.caseFromDartToSql,
this.dialect,
}) {
// ignore: deprecated_member_use_from_same_package
@ -364,9 +364,9 @@ enum SqlModule {
spellfix1,
}
/// The possible values for the case of the column names.
enum ColumnNameCase {
/// Preserves the case of the column name as it is in the dart code.
/// The possible values for the case of the table and column names.
enum CaseFromDartToSql {
/// Preserves the case of the name as it is in the dart code.
///
/// `myColumn` -> `myColumn`.
preserve,

View File

@ -336,9 +336,9 @@ class ColumnParser {
remainingExpr = inner;
}
_resolver.resolver.driver.options.columnNameCase;
_resolver.resolver.driver.options.caseFromDartToSql;
final sqlName = foundExplicitName ??
_resolver.resolver.driver.options.columnNameCase
_resolver.resolver.driver.options.caseFromDartToSql
.apply(getter.name.lexeme);
final sqlType = _startMethodToColumnType(foundStartMethod);
final helper = await _resolver.resolver.driver.loadKnownTypes();
@ -492,23 +492,23 @@ class PendingColumnInformation {
PendingColumnInformation(this.column, {this.referencesColumnInSameTable});
}
extension on ColumnNameCase {
extension on CaseFromDartToSql {
String apply(String name) {
final reCase = ReCase(name);
switch (this) {
case ColumnNameCase.preserve:
case CaseFromDartToSql.preserve:
return name;
case ColumnNameCase.camel:
case CaseFromDartToSql.camel:
return reCase.camelCase;
case ColumnNameCase.constant:
case CaseFromDartToSql.constant:
return reCase.constantCase;
case ColumnNameCase.snake:
case CaseFromDartToSql.snake:
return reCase.snakeCase;
case ColumnNameCase.pascal:
case CaseFromDartToSql.pascal:
return reCase.pascalCase;
case ColumnNameCase.lower:
case CaseFromDartToSql.lower:
return name.toLowerCase();
case ColumnNameCase.upper:
case CaseFromDartToSql.upper:
return name.toUpperCase();
}
}

View File

@ -31,7 +31,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
'named_parameters_always_required',
'scoped_dart_components',
'store_date_time_values_as_text',
'column_name_case'
'case_from_dart_to_sql'
],
);
final val = DriftOptions(
@ -78,11 +78,11 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
v == null ? null : SqliteAnalysisOptions.fromJson(v as Map)),
storeDateTimeValuesAsText: $checkedConvert(
'store_date_time_values_as_text', (v) => v as bool? ?? false),
columnNameCase: $checkedConvert(
'column_name_case',
caseFromDartToSql: $checkedConvert(
'case_from_dart_to_sql',
(v) =>
$enumDecodeNullable(_$ColumnNameCaseEnumMap, v) ??
ColumnNameCase.snake),
$enumDecodeNullable(_$CaseFromDartToSqlEnumMap, v) ??
CaseFromDartToSql.snake),
dialect: $checkedConvert('sql',
(v) => v == null ? null : DialectOptions.fromJson(v as Map)),
);
@ -109,7 +109,7 @@ DriftOptions _$DriftOptionsFromJson(Map json) => $checkedCreate(
'modules': 'sqlite_modules',
'sqliteAnalysisOptions': 'sqlite',
'storeDateTimeValuesAsText': 'store_date_time_values_as_text',
'columnNameCase': 'column_name_case',
'caseFromDartToSql': 'case_from_dart_to_sql',
'dialect': 'sql'
},
);
@ -140,7 +140,8 @@ Map<String, dynamic> _$DriftOptionsToJson(DriftOptions instance) =>
instance.namedParametersAlwaysRequired,
'scoped_dart_components': instance.scopedDartComponents,
'store_date_time_values_as_text': instance.storeDateTimeValuesAsText,
'column_name_case': _$ColumnNameCaseEnumMap[instance.columnNameCase]!,
'case_from_dart_to_sql':
_$CaseFromDartToSqlEnumMap[instance.caseFromDartToSql]!,
};
const _$SqlModuleEnumMap = {
@ -152,14 +153,14 @@ const _$SqlModuleEnumMap = {
SqlModule.spellfix1: 'spellfix1',
};
const _$ColumnNameCaseEnumMap = {
ColumnNameCase.preserve: 'preserve',
ColumnNameCase.camel: 'camelCase',
ColumnNameCase.constant: 'CONSTANT_CASE',
ColumnNameCase.snake: 'snake_case',
ColumnNameCase.pascal: 'PascalCase',
ColumnNameCase.lower: 'lowercase',
ColumnNameCase.upper: 'UPPERCASE',
const _$CaseFromDartToSqlEnumMap = {
CaseFromDartToSql.preserve: 'preserve',
CaseFromDartToSql.camel: 'camelCase',
CaseFromDartToSql.constant: 'CONSTANT_CASE',
CaseFromDartToSql.snake: 'snake_case',
CaseFromDartToSql.pascal: 'PascalCase',
CaseFromDartToSql.lower: 'lowercase',
CaseFromDartToSql.upper: 'UPPERCASE',
};
DialectOptions _$DialectOptionsFromJson(Map json) => $checkedCreate(

View File

@ -48,7 +48,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.snake),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.snake),
);
final file = await state.analyze('package:a/main.dart');
@ -77,7 +78,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.preserve),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.preserve),
);
final file = await state.analyze('package:a/main.dart');
@ -105,7 +107,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.camel),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.camel),
);
final file = await state.analyze('package:a/main.dart');
@ -134,7 +137,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.constant),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.constant),
);
final file = await state.analyze('package:a/main.dart');
@ -162,7 +166,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.pascal),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.pascal),
);
final file = await state.analyze('package:a/main.dart');
@ -190,7 +195,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.lower),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.lower),
);
final file = await state.analyze('package:a/main.dart');
@ -218,7 +224,8 @@ class TestTable extends Table {
class Database {}
'''
},
options: DriftOptions.defaults(columnNameCase: ColumnNameCase.upper),
options:
DriftOptions.defaults(caseFromDartToSql: CaseFromDartToSql.upper),
);
final file = await state.analyze('package:a/main.dart');