Skip to content

Commit

Permalink
update linter
Browse files Browse the repository at this point in the history
  • Loading branch information
tshedor committed Feb 24, 2025
1 parent 709d674 commit faca568
Show file tree
Hide file tree
Showing 30 changed files with 74 additions and 50 deletions.
18 changes: 17 additions & 1 deletion analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ include: package:lints/recommended.yaml
linter:
rules:
# This list is derived from the list of all available lints located at
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
# https://github.com/dart-lang/sdk/blob/main/pkg/linter/example/all.yaml
- always_declare_return_types
# - always_put_control_body_on_new_line
# - always_put_required_named_parameters_first
# - always_specify_types
- always_use_package_imports
- annotate_overrides
- annotate_redeclares
# - avoid_annotating_with_dynamic
- avoid_bool_literals_in_conditional_expressions
# - avoid_catches_without_on_clauses
Expand All @@ -23,6 +24,7 @@ linter:
- avoid_field_initializers_in_const_classes
# - avoid_final_parameters
- avoid_function_literals_in_foreach_calls
- avoid_futureor_void
- avoid_implementing_value_types
- avoid_init_to_null
- avoid_js_rounded_ints
Expand Down Expand Up @@ -70,6 +72,7 @@ linter:
- directives_ordering
- discarded_futures
- do_not_use_environment
# - document_ignores
- empty_catches
- empty_constructor_bodies
- empty_statements
Expand All @@ -82,6 +85,7 @@ linter:
- implicit_call_tearoffs
- implicit_reopen
- invalid_case_patterns
- invalid_runtime_check_with_js_interop_types
- join_return_with_assignment
# - leading_newlines_in_multiline_strings
- library_annotations
Expand All @@ -91,6 +95,7 @@ linter:
# - lines_longer_than_80_chars
- literal_only_boolean_expressions
- matching_super_parameters
- missing_code_block_language_in_doc_comment
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_default_cases
Expand All @@ -107,6 +112,8 @@ linter:
- null_check_on_nullable_type_parameter
- null_closures
- omit_local_variable_types
- omit_obvious_local_variable_types
- omit_obvious_property_types
- one_member_abstracts
- only_throw_errors
- overridden_fields
Expand Down Expand Up @@ -164,13 +171,18 @@ linter:
# - sort_constructors_first
- sort_pub_dependencies
- sort_unnamed_constructors_first
# - specify_nonobvious_local_variable_types
# - specify_nonobvious_property_types
# - strict_top_level_inference
- test_types_in_equals
- throw_in_finally
- tighten_type_of_initializing_formals
- type_annotate_public_apis
- type_init_formals
- type_literal_in_constant_pattern
- unawaited_futures
- unintended_html_in_doc_comment
- unnecessary_async
# - unnecessary_await_in_return
- unnecessary_brace_in_string_interps
- unnecessary_breaks
Expand All @@ -181,6 +193,7 @@ linter:
- unnecessary_lambdas
- unnecessary_late
- unnecessary_library_directive
- unnecessary_library_name
- unnecessary_new
- unnecessary_null_aware_assignments
- unnecessary_null_aware_operator_on_extension_on_nullable
Expand All @@ -195,8 +208,10 @@ linter:
- unnecessary_string_interpolations
- unnecessary_this
- unnecessary_to_list_in_spreads
- unnecessary_underscores
# - unreachable_from_main
- unrelated_type_equality_checks
# - unsafe_variance
- use_build_context_synchronously
- use_colored_box
- use_decorated_box
Expand All @@ -216,6 +231,7 @@ linter:
- use_super_parameters
- use_test_throws_matchers
- use_to_and_as_if_applicable
- use_truncating_division
- valid_regexps
- void_checks

Expand Down
1 change: 1 addition & 0 deletions example_supabase/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class MyHomePage extends StatelessWidget {
body: Container(
padding: const EdgeInsets.all(20),
child: FutureBuilder(
// necesary future
// ignore: discarded_futures
future: Repository().get<Pizza>(),
builder: (context, AsyncSnapshot<List<Pizza>> pizzaList) {
Expand Down
1 change: 1 addition & 0 deletions packages/brick_build/lib/src/serdes_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ abstract class SerdesGenerator<FieldAnnotation extends FieldSerializable,

/// Avoid linter error on subsequent passes for the repository.
/// For example, if repository has already been casted to `!` it should not be recast
// ignore: omit_obvious_property_types
bool repositoryHasBeenForceCast = false;

/// For example, `OfflineFirst`
Expand Down
2 changes: 1 addition & 1 deletion packages/brick_build_test/lib/brick_build_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ typedef LibraryGenerator = Future<LibraryReader> Function(String filename);
/// Thunks a reader generator that assumes the filename is prefixed `test_`
/// and suffixed `.dart` and nested in [folder] in the `test` folder.
LibraryGenerator generateLibraryForFolder(String folder) {
return (String filename) async {
return (String filename) {
return _libraryForFolder(folder, filename);
};
}
Expand Down
2 changes: 1 addition & 1 deletion packages/brick_core/test/provider_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ void main() {
expect(res.first.name, 'Thomas');
});

test('#upsert', () async {
test('#upsert', () {
final res = provider.upsert(DemoModel('Thomas'));
expect(res, isTrue);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ class DemoModelAssocAdapter extends GraphqlAdapter<DemoModelAssoc> {
DemoModelAssocAdapter();

@override
final Map<String, RuntimeGraphqlDefinition> fieldsToGraphqlRuntimeDefinition = {
final fieldsToGraphqlRuntimeDefinition = {
'primaryKey': const RuntimeGraphqlDefinition(
documentNodeName: 'primaryKey',
type: int,
Expand Down Expand Up @@ -73,7 +73,7 @@ class DemoModelAssocWithSubfieldsAdapter extends GraphqlAdapter<DemoModelAssoc>
final queryOperationTransformer = _DemoModelAssocTransformer.new;

@override
final Map<String, RuntimeGraphqlDefinition> fieldsToGraphqlRuntimeDefinition = {
final fieldsToGraphqlRuntimeDefinition = <String, RuntimeGraphqlDefinition>{
'primaryKey': const RuntimeGraphqlDefinition(
documentNodeName: '_brick_id',
type: int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class OfflineFirst {
///
/// For example, given the API: `{"classField" : true, "assoc": { "id": 12345 }}` and the `where`
/// configuration `{'id' : "data['assoc']['id']"}`, a REST adapter would generate
/// ```
/// ```dart
/// await repository?.getAssociation<Association>(
/// Query(where: [Where.exact('id', data['assoc']['id])], limit: 1)
/// )
Expand All @@ -17,7 +17,7 @@ class OfflineFirst {
/// When `false`, the output would generate assuming the full payload is present. Given the API
/// `{"classField" : true, "assoc": { "id": 12345, "name": "class name" }}`, a REST adapter would
/// generate
/// ```
/// ```dart
/// await AssociationAdapter().fromRest(data['assoc'], provider: provider, repository: repository))
/// ```
final bool applyToRemoteDeserialization;
Expand All @@ -27,13 +27,13 @@ class OfflineFirst {
/// If the field type is an `Iterable`, the map requires the field value to be an `Iterable`.
///
/// For example, given an API: `{"classField" : true, "assoc": { "id": 12345 }}`,
/// ```
/// ```dart
/// @OfflineFirst(where: {'id' : "data['assoc']['id']"})
/// final Assoc assoc;
/// ```
///
/// Or given a list: `{"classField" : true, "assoc": { "ids": [12345, 6789] }}`
/// ```
/// ```dart
/// @OfflineFirst(where: {'id' : "data['assoc']['ids']"})
/// final List<Assoc> assocs;
/// ```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ abstract class OfflineRequestQueue<TRequest> {

/// This mutex ensures that concurrent writes to the DB will
/// not occur as the Timer runs in sub routines or isolates
// ignore: omit_obvious_property_types
bool _processingInBackground = false;

/// How often requests are reattempted
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class TestRepository extends OfflineFirstWithTestRepository {
static late TestRepository? _singleton;

/// A hack to similuate a failure in the remote provider
// ignore: omit_obvious_property_types
static bool throwOnNextRemoteMutation = false;

factory TestRepository() => _singleton!;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class HorseAdapter extends OfflineFirstWithTestAdapter<Horse> {
HorseAdapter();

@override
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
final fieldsToSqliteColumns = <String, RuntimeSqliteColumnDefinition>{
'primaryKey': const RuntimeSqliteColumnDefinition(
columnName: '_brick_id',
type: int,
Expand All @@ -90,7 +90,7 @@ class HorseAdapter extends OfflineFirstWithTestAdapter<Horse> {
Future<int?> primaryKeyByUniqueColumns(Horse instance, DatabaseExecutor executor) async =>
instance.primaryKey;
@override
final String tableName = 'Horse';
final tableName = 'Horse';
@override
Future<void> afterSave(
Horse instance, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class MountyAdapter extends OfflineFirstWithTestAdapter<Mounty> {
MountyAdapter();

@override
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
final fieldsToSqliteColumns = <String, RuntimeSqliteColumnDefinition>{
'primaryKey': const RuntimeSqliteColumnDefinition(
columnName: '_brick_id',
type: int,
Expand All @@ -52,7 +52,7 @@ class MountyAdapter extends OfflineFirstWithTestAdapter<Mounty> {
Future<int?> primaryKeyByUniqueColumns(Mounty instance, DatabaseExecutor executor) async =>
instance.primaryKey;
@override
final String tableName = 'Mounty';
final tableName = 'Mounty';

@override
Future<Mounty> fromTest(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import 'package:brick_sqlite/memory_cache_provider.dart';
import '__mocks__.dart';

class TestProvider extends Provider<TestModel> {
List<String> methodsCalled = <String>[];
final methodsCalled = <String>[];

@override
final TestModelDictionary modelDictionary;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ void main() {
(TestRepository().remoteProvider as TestProvider).methodsCalled.clear();
});

test('#applyPolicyToQuery', () async {
test('#applyPolicyToQuery', () {
const policy = OfflineFirstGetPolicy.localOnly;
final query = TestRepository().applyPolicyToQuery(const Query(), get: policy);
expect(query?.action?.index, policy.index);
Expand Down Expand Up @@ -176,7 +176,7 @@ void main() {
expect(results.primaryKey, greaterThanOrEqualTo(1));
});

test('OfflineFirstUpsertPolicy.requireRemote', () async {
test('OfflineFirstUpsertPolicy.requireRemote', () {
final instance = Mounty(name: 'SqliteName');
TestRepository.throwOnNextRemoteMutation = true;
expect(
Expand All @@ -197,7 +197,7 @@ void main() {
});

group('#subscribe', () {
test('adds controller and query to #subscriptions', () async {
test('adds controller and query to #subscriptions', () {
expect(TestRepository().subscriptions, hasLength(0));
final query = Query.where('name', 'Thomas');
TestRepository().subscribe<Mounty>(query: query);
Expand All @@ -207,15 +207,15 @@ void main() {
expect(TestRepository().subscriptions[Mounty]!.entries.first.value, isNotNull);
});

test('subscription succeeds when policy is non-default .awaitRemote', () async {
test('subscription succeeds when policy is non-default .awaitRemote', () {
expect(TestRepository().subscriptions, hasLength(0));
final query = Query.where('name', 'Thomas');
TestRepository().subscribe<Mounty>(policy: OfflineFirstGetPolicy.awaitRemote, query: query);
expect(TestRepository().subscriptions, hasLength(1));
expect(TestRepository().subscriptions[Mounty], hasLength(1));
});

test('adds controller and null query to #subscriptions', () async {
test('adds controller and null query to #subscriptions', () {
expect(TestRepository().subscriptions, hasLength(0));
TestRepository().subscribe<Mounty>();
expect(TestRepository().subscriptions, hasLength(1));
Expand All @@ -239,6 +239,7 @@ void main() {
subscription.pause();
expect(TestRepository().subscriptions, hasLength(1));
expect(TestRepository().subscriptions[Mounty]!.entries.first.value.isPaused, isTrue);
await subscription.cancel();
});

test('stores fetched data', () async {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// ignore_for_file: omit_obvious_property_types

import 'package:brick_offline_first_with_rest/brick_offline_first_with_rest.dart';

const output = r'''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ void main() {
expect(capturedRequest, mutationRequest);
});

test('callback is not triggered when request succeeds', () async {
test('callback is not triggered when request succeeds', () {
Request? capturedRequest;

final mockLink = MockLink();
Expand Down Expand Up @@ -228,7 +228,7 @@ void main() {
expect(capturedonException.toString(), contains('Test failure'));
});

test('callback is not triggered on successful response', () async {
test('callback is not triggered on successful response', () {
Request? capturedRequest;
Object? capturedException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ class HorseAdapter extends OfflineFirstWithGraphqlAdapter<Horse> {
HorseAdapter();

@override
final Map<String, RuntimeGraphqlDefinition> fieldsToGraphqlRuntimeDefinition = {
final fieldsToGraphqlRuntimeDefinition = <String, RuntimeGraphqlDefinition>{
'primaryKey': const RuntimeGraphqlDefinition(
documentNodeName: '_brick_id',
type: int,
Expand All @@ -139,7 +139,7 @@ class HorseAdapter extends OfflineFirstWithGraphqlAdapter<Horse> {
};

@override
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
final fieldsToSqliteColumns = <String, RuntimeSqliteColumnDefinition>{
'primaryKey': const RuntimeSqliteColumnDefinition(
columnName: '_brick_id',
type: int,
Expand All @@ -159,7 +159,7 @@ class HorseAdapter extends OfflineFirstWithGraphqlAdapter<Horse> {
Future<int?> primaryKeyByUniqueColumns(Horse instance, DatabaseExecutor executor) async =>
instance.primaryKey;
@override
final String tableName = 'Horse';
final tableName = 'Horse';
@override
Future<void> afterSave(
Horse instance, {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class MountyAdapter extends OfflineFirstWithGraphqlAdapter<Mounty> {
MountyAdapter();

@override
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
final fieldsToSqliteColumns = <String, RuntimeSqliteColumnDefinition>{
'primaryKey': const RuntimeSqliteColumnDefinition(
columnName: '_brick_id',
type: int,
Expand All @@ -99,7 +99,7 @@ class MountyAdapter extends OfflineFirstWithGraphqlAdapter<Mounty> {
};

@override
final Map<String, RuntimeGraphqlDefinition> fieldsToGraphqlRuntimeDefinition = {
final fieldsToGraphqlRuntimeDefinition = <String, RuntimeGraphqlDefinition>{
'name': const RuntimeGraphqlDefinition(
documentNodeName: 'name',
type: String,
Expand All @@ -109,7 +109,7 @@ class MountyAdapter extends OfflineFirstWithGraphqlAdapter<Mounty> {
Future<int?> primaryKeyByUniqueColumns(Mounty instance, DatabaseExecutor executor) async =>
instance.primaryKey;
@override
final String tableName = 'Mounty';
final tableName = 'Mounty';

@override
Future<Mounty> fromGraphql(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class HorseAdapter extends OfflineFirstWithRestAdapter<Horse> {
HorseAdapter();

@override
final Map<String, RuntimeSqliteColumnDefinition> fieldsToSqliteColumns = {
final fieldsToSqliteColumns = <String, RuntimeSqliteColumnDefinition>{
'primaryKey': const RuntimeSqliteColumnDefinition(
columnName: '_brick_id',
type: int,
Expand All @@ -90,7 +90,7 @@ class HorseAdapter extends OfflineFirstWithRestAdapter<Horse> {
Future<int?> primaryKeyByUniqueColumns(Horse instance, DatabaseExecutor executor) async =>
instance.primaryKey;
@override
final String tableName = 'Horse';
final tableName = 'Horse';
@override
Future<void> afterSave(
Horse instance, {
Expand Down
Loading

0 comments on commit faca568

Please sign in to comment.