diff --git a/lib/features/package_details/package_details.dart b/lib/features/package_details/package_details.dart index 21c06c5..5b47395 100644 --- a/lib/features/package_details/package_details.dart +++ b/lib/features/package_details/package_details.dart @@ -1,5 +1,6 @@ import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:npm/util/dio.dart'; +import 'package:npm/util/typedefs.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'package_details.g.dart'; @@ -8,9 +9,10 @@ part 'package_details.freezed.dart'; @riverpod Future packageDetails(PackageDetailsRef ref, {required String id}) async { - final response = - await ref.watch(dioProvider).get('https://registry.npmjs.org/$id'); - return PackageDetails.fromJson(response.data); + final response = await ref.watch(dioProvider).getUri( + Uri.parse('https://registry.npmjs.org/$id'), + ); + return PackageDetails.fromJson(response.data!); } @freezed @@ -26,8 +28,7 @@ class PackageDetails with _$PackageDetails { final String? homepage, @JsonKey(readValue: _toRepository) required final String? repository, }) = _PackageDetails; - factory PackageDetails.fromJson(Map json) => - _$PackageDetailsFromJson(json); + factory PackageDetails.fromJson(Json json) => _$PackageDetailsFromJson(json); } String? _toRepository(Map json, String _) { diff --git a/lib/features/package_details/package_details.g.dart b/lib/features/package_details/package_details.g.dart index c11f141..2d33ec5 100644 --- a/lib/features/package_details/package_details.g.dart +++ b/lib/features/package_details/package_details.g.dart @@ -35,7 +35,7 @@ Map _$$PackageDetailsImplToJson( // RiverpodGenerator // ************************************************************************** -String _$packageDetailsHash() => r'13a5bae6eea978ca8dbceadf1cf8e31cb5eb9f96'; +String _$packageDetailsHash() => r'4c517085c385ec873683d8e855b6e7cbd6d9ad6c'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/features/packages/packages.dart b/lib/features/packages/packages.dart index 7a9aef5..a9de036 100644 --- a/lib/features/packages/packages.dart +++ b/lib/features/packages/packages.dart @@ -3,6 +3,7 @@ import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:npm/util/dio.dart'; import 'package:npm/util/extensions.dart'; import 'package:npm/features/score/score.dart'; +import 'package:npm/util/typedefs.dart'; import 'package:riverpod_annotation/riverpod_annotation.dart'; part 'packages.g.dart'; @@ -20,14 +21,12 @@ Future> packages( await Future.delayed(const Duration(milliseconds: 500)); if (cancelToken.isCancelled) throw Exception('Cancelled'); } - final response = await ref.watch(dioProvider).get( - 'https://registry.npmjs.org/-/v1/search?text=$search', + final response = await ref.watch(dioProvider).getUri( + Uri.parse('https://registry.npmjs.org/-/v1/search?text=$search'), cancelToken: cancelToken, ); - final List packages = response.data['objects']; - return packages - .map((package) => Package.fromJson(package as Map)) - .toList(); + final packages = response.data!['objects'] as List; + return packages.map((package) => Package.fromJson(package)).toList(); } @freezed @@ -41,7 +40,7 @@ class Package with _$Package { final List? keywords, }) = _Package; - factory Package.fromJson(Map json) { + factory Package.fromJson(Json json) { final package = json['package']; final score = json['score']['detail']; diff --git a/lib/features/packages/packages.g.dart b/lib/features/packages/packages.g.dart index 2cf8a40..0e9437f 100644 --- a/lib/features/packages/packages.g.dart +++ b/lib/features/packages/packages.g.dart @@ -6,7 +6,7 @@ part of 'packages.dart'; // RiverpodGenerator // ************************************************************************** -String _$packagesHash() => r'ee8d89e385fb68a6f63968f4800063cc09875c96'; +String _$packagesHash() => r'537eb39899d4f8f67ac398a254719d7d19f66224'; /// Copied from Dart SDK class _SystemHash { diff --git a/lib/features/score/score.dart b/lib/features/score/score.dart index 2507fa1..d90abff 100644 --- a/lib/features/score/score.dart +++ b/lib/features/score/score.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:npm/l10n/strings.g.dart'; +import 'package:npm/util/typedefs.dart'; part 'score.freezed.dart'; part 'score.g.dart'; @@ -12,7 +13,7 @@ class Score with _$Score { required final double quality, required final double maintenance, }) = _Score; - factory Score.fromJson(Map json) => _$ScoreFromJson(json); + factory Score.fromJson(Json json) => _$ScoreFromJson(json); } enum ScoreType { diff --git a/lib/util/typedefs.dart b/lib/util/typedefs.dart new file mode 100644 index 0000000..17cfb1c --- /dev/null +++ b/lib/util/typedefs.dart @@ -0,0 +1 @@ +typedef Json = Map;