mirror of https://github.com/AMT-Cheif/drift.git
🚚 Rename column_name_case into case_from_dart_to_sql
This commit is contained in:
parent
b08088ab1b
commit
496635afb5
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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');
|
||||
|
|
Loading…
Reference in New Issue