From 6ddf98a52cf2fec1ecf50251144228b85ebbe2a6 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 14:05:57 +0800 Subject: [PATCH 01/17] =?UTF-8?q?=F0=9F=94=A5=20Removes=20the=20explicit?= =?UTF-8?q?=20Flare=20integration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- analysis_options.yaml | 1 + examples/example/lib/gen/assets.gen.dart | 53 +------------ examples/example/lib/main.dart | 15 ---- .../example_resources/lib/gen/assets.gen.dart | 54 +------------ packages/command/bin/flutter_gen_command.dart | 1 - .../command/example/lib/gen/assets.gen.dart | 49 +----------- packages/command/example/lib/main.dart | 15 ---- .../test/flutter_gen_command_test.dart | 1 - packages/core/example/lib/gen/assets.gen.dart | 49 +----------- packages/core/example/lib/main.dart | 15 ---- .../core/lib/generators/assets_generator.dart | 2 - .../integrations/flare_integration.dart | 12 ++- packages/core/lib/settings/pubspec.dart | 1 + .../test/assets_gen_integrations_test.dart | 53 ------------- .../actual_data/assets.gen.dart | 53 +------------ .../assets_flare_integrations.gen.dart | 75 ------------------ .../actual_data/assets_flavored.gen.dart | 53 +------------ .../assets_parse_metadata.gen.dart | 53 +------------ .../actual_data/build_assets.gen.dart | 77 +++++-------------- .../actual_data/build_empty.gen.dart | 77 +++++-------------- .../actual_data/build_runner_assets.gen.dart | 77 +++++-------------- .../core/test_resources/pubspec_assets.yaml | 1 - .../pubspec_assets_flare_integrations.yaml | 12 --- .../pubspec_assets_flavored.yaml | 1 - ...bspec_assets_flavored_duplicate_entry.yaml | 1 - .../pubspec_assets_parse_metadata.yaml | 1 - .../runner/example/lib/gen/assets.gen.dart | 49 +----------- packages/runner/example/lib/main.dart | 15 ---- 29 files changed, 83 insertions(+), 788 deletions(-) delete mode 100644 packages/core/test_resources/actual_data/assets_flare_integrations.gen.dart delete mode 100644 packages/core/test_resources/pubspec_assets_flare_integrations.yaml diff --git a/README.md b/README.md index e10b36e66..90c653ca5 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,6 @@ flutter_gen: # Optional integrations: flutter_svg: true - flare_flutter: true rive: true lottie: true @@ -398,11 +397,9 @@ Widget build(BuildContext context) { | Packages | File extension | Setting | Usage | |---------------------------------------------------------|----------------|-----------------------|-------------------------------------------| | [flutter_svg](https://pub.dev/packages/flutter_svg) | .svg | `flutter_svg: true` | Assets.images.icons.paint.**svg()** | -| [flare_flutter](https://pub.dev/packages/flare_flutter) | .flr | `flare_flutter: true` | Assets.flare.penguin.**flare()** | -| [rive](https://pub.dev/packages/rive) | .flr | `rive: true` | Assets.rive.vehicles.**rive()** | +| [rive](https://pub.dev/packages/rive) | .riv | `rive: true` | Assets.rive.vehicles.**rive()** | | [lottie](https://pub.dev/packages/lottie) | .json, .zip | `lottie: true` | Assets.lottie.hamburgerArrow.**lottie()** | - In other cases, the asset is generated as String class. ```dart diff --git a/analysis_options.yaml b/analysis_options.yaml index 164b1aa37..2d2d27e06 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -7,6 +7,7 @@ analyzer: - '**.g.dart' - 'test_resources/**' errors: + deprecated_member_use_from_same_package: ignore unnecessary_import: error unawaited_futures: error diff --git a/examples/example/lib/gen/assets.gen.dart b/examples/example/lib/gen/assets.gen.dart index 8793b313d..24f675a37 100644 --- a/examples/example/lib/gen/assets.gen.dart +++ b/examples/example/lib/gen/assets.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -20,10 +18,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -386,53 +384,6 @@ class SvgGenImage { String get keyName => _assetName; } -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} - class RiveGenImage { const RiveGenImage( this._assetName, { diff --git a/examples/example/lib/main.dart b/examples/example/lib/main.dart index a19d961d8..ba105f511 100644 --- a/examples/example/lib/main.dart +++ b/examples/example/lib/main.dart @@ -31,14 +31,6 @@ void main() async { mainAxisAlignment: MainAxisAlignment.center, children: [ // Auto generated image from FlutterGen. - SizedBox( - width: 200, - height: 200, - child: MyAssets.flare.penguin.flare( - animation: 'walk', - fit: BoxFit.contain, - ), - ), SizedBox( width: 200, height: 200, @@ -105,13 +97,6 @@ void main() async { fit: BoxFit.contain, ), ), - SizedBox( - width: 200, - height: 200, - child: ResAssets.images.favorite.flare( - shouldClip: false, - ), - ), SizedBox( width: 200, height: 200, diff --git a/examples/example_resources/lib/gen/assets.gen.dart b/examples/example_resources/lib/gen/assets.gen.dart index 18f41a574..5e7aa6b9d 100644 --- a/examples/example_resources/lib/gen/assets.gen.dart +++ b/examples/example_resources/lib/gen/assets.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -23,8 +21,7 @@ class $AssetsImagesGen { SvgGenImage get dart => const SvgGenImage('assets/images/dart.svg'); /// File path: assets/images/favorite.flr - FlareGenImage get favorite => - const FlareGenImage('assets/images/favorite.flr'); + String get favorite => 'assets/images/favorite.flr'; /// File path: assets/images/flutter3.jpg AssetGenImage get flutter3 => @@ -227,55 +224,6 @@ class SvgGenImage { String get keyName => 'packages/example_resources/$_assetName'; } -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - static const String package = 'example_resources'; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - 'packages/example_resources/$_assetName', - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => 'packages/example_resources/$_assetName'; -} - class RiveGenImage { const RiveGenImage( this._assetName, { diff --git a/packages/command/bin/flutter_gen_command.dart b/packages/command/bin/flutter_gen_command.dart index e334d3985..21f33c364 100644 --- a/packages/command/bin/flutter_gen_command.dart +++ b/packages/command/bin/flutter_gen_command.dart @@ -5,7 +5,6 @@ import 'package:flutter_gen_core/flutter_generator.dart'; import 'package:flutter_gen_core/utils/cast.dart'; import 'package:flutter_gen_core/version.gen.dart'; - void main(List args) { final parser = ArgParser(); parser.addOption( diff --git a/packages/command/example/lib/gen/assets.gen.dart b/packages/command/example/lib/gen/assets.gen.dart index a9cb53918..5b3ee354c 100644 --- a/packages/command/example/lib/gen/assets.gen.dart +++ b/packages/command/example/lib/gen/assets.gen.dart @@ -10,8 +10,6 @@ import 'package:flutter/widgets.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:flare_flutter/flare_actor.dart'; -import 'package:flare_flutter/flare_controller.dart'; import 'package:rive/rive.dart'; import 'package:lottie/lottie.dart'; @@ -19,10 +17,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -321,49 +319,6 @@ class SvgGenImage { String get keyName => _assetName; } -class FlareGenImage { - const FlareGenImage(this._assetName); - - final String _assetName; - - FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - FlareController? controller, - FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} - class RiveGenImage { const RiveGenImage(this._assetName); diff --git a/packages/command/example/lib/main.dart b/packages/command/example/lib/main.dart index ca4f30967..7389a19d2 100644 --- a/packages/command/example/lib/main.dart +++ b/packages/command/example/lib/main.dart @@ -28,14 +28,6 @@ void main() async { mainAxisAlignment: MainAxisAlignment.center, children: [ // Auto generated image from FlutterGen. - SizedBox( - width: 200, - height: 200, - child: MyAssets.flare.penguin.flare( - animation: 'walk', - fit: BoxFit.contain, - ), - ), SizedBox( width: 200, height: 200, @@ -102,13 +94,6 @@ void main() async { fit: BoxFit.contain, ), ), - SizedBox( - width: 200, - height: 200, - child: ResAssets.images.favorite.flare( - shouldClip: false, - ), - ), SizedBox( width: 200, height: 200, diff --git a/packages/command/test/flutter_gen_command_test.dart b/packages/command/test/flutter_gen_command_test.dart index 79faa9acd..e954681dc 100644 --- a/packages/command/test/flutter_gen_command_test.dart +++ b/packages/command/test/flutter_gen_command_test.dart @@ -4,7 +4,6 @@ import 'package:flutter_gen_core/version.gen.dart'; import 'package:test/test.dart'; import 'package:test_process/test_process.dart'; - final separator = Platform.pathSeparator; void main() { diff --git a/packages/core/example/lib/gen/assets.gen.dart b/packages/core/example/lib/gen/assets.gen.dart index 45389d813..e22840f49 100644 --- a/packages/core/example/lib/gen/assets.gen.dart +++ b/packages/core/example/lib/gen/assets.gen.dart @@ -10,8 +10,6 @@ import 'package:flutter/widgets.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; -import 'package:flare_flutter/flare_actor.dart'; -import 'package:flare_flutter/flare_controller.dart'; import 'package:rive/rive.dart'; import 'package:lottie/lottie.dart'; @@ -19,10 +17,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -319,49 +317,6 @@ class SvgGenImage { String get keyName => _assetName; } -class FlareGenImage { - const FlareGenImage(this._assetName); - - final String _assetName; - - FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - FlareController? controller, - FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} - class RiveGenImage { const RiveGenImage(this._assetName); diff --git a/packages/core/example/lib/main.dart b/packages/core/example/lib/main.dart index ca4f30967..7389a19d2 100644 --- a/packages/core/example/lib/main.dart +++ b/packages/core/example/lib/main.dart @@ -28,14 +28,6 @@ void main() async { mainAxisAlignment: MainAxisAlignment.center, children: [ // Auto generated image from FlutterGen. - SizedBox( - width: 200, - height: 200, - child: MyAssets.flare.penguin.flare( - animation: 'walk', - fit: BoxFit.contain, - ), - ), SizedBox( width: 200, height: 200, @@ -102,13 +94,6 @@ void main() async { fit: BoxFit.contain, ), ), - SizedBox( - width: 200, - height: 200, - child: ResAssets.images.favorite.flare( - shouldClip: false, - ), - ), SizedBox( width: 200, height: 200, diff --git a/packages/core/lib/generators/assets_generator.dart b/packages/core/lib/generators/assets_generator.dart index 022fab2b5..ea1635853 100644 --- a/packages/core/lib/generators/assets_generator.dart +++ b/packages/core/lib/generators/assets_generator.dart @@ -73,10 +73,8 @@ Future generateAssets( LottieIntegration(config.packageParameterLiteral), ]; - // ignore: deprecated_member_use_from_same_package final deprecatedStyle = config.flutterGen.assets.style != null; final deprecatedPackageParam = - // ignore: deprecated_member_use_from_same_package config.flutterGen.assets.packageParameterEnabled != null; if (deprecatedStyle || deprecatedPackageParam) { stderr.writeln(''' diff --git a/packages/core/lib/generators/integrations/flare_integration.dart b/packages/core/lib/generators/integrations/flare_integration.dart index 949cc91f8..d8088813f 100644 --- a/packages/core/lib/generators/integrations/flare_integration.dart +++ b/packages/core/lib/generators/integrations/flare_integration.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:flutter_gen_core/generators/integrations/integration.dart'; class FlareIntegration extends Integration { @@ -74,7 +76,15 @@ ${isPackage ? "\n static const String package = '$packageName';" : ''} String get className => 'FlareGenImage'; @override - bool isSupport(AssetType asset) => asset.extension == '.flr'; + bool isSupport(AssetType asset) { + if (asset.extension == '.flr') { + stdout.writeln( + 'Legacy Flare files are no longer supported for the generation.\n' + 'https://help.rive.app/getting-started/faq-1/importing-rive-1-files.', + ); + } + return false; + } @override bool get isConstConstructor => true; diff --git a/packages/core/lib/settings/pubspec.dart b/packages/core/lib/settings/pubspec.dart index 6f8b96494..6b38c713c 100644 --- a/packages/core/lib/settings/pubspec.dart +++ b/packages/core/lib/settings/pubspec.dart @@ -166,6 +166,7 @@ class FlutterGenIntegrations { @JsonKey(name: 'flutter_svg', required: true) final bool flutterSvg; + @Deprecated('This will be removed in 6.0.0') @JsonKey(name: 'flare_flutter', required: true) final bool flareFlutter; diff --git a/packages/core/test/assets_gen_integrations_test.dart b/packages/core/test/assets_gen_integrations_test.dart index 6027c595b..123d60df7 100644 --- a/packages/core/test/assets_gen_integrations_test.dart +++ b/packages/core/test/assets_gen_integrations_test.dart @@ -1,4 +1,3 @@ -import 'package:flutter_gen_core/generators/integrations/flare_integration.dart'; import 'package:flutter_gen_core/generators/integrations/integration.dart'; import 'package:flutter_gen_core/generators/integrations/lottie_integration.dart'; import 'package:flutter_gen_core/generators/integrations/rive_integration.dart'; @@ -139,58 +138,6 @@ void main() { ); }); - test('Assets with Flare integrations on pubspec.yaml', () async { - const pubspec = 'test_resources/pubspec_assets_flare_integrations.yaml'; - const fact = - 'test_resources/actual_data/assets_flare_integrations.gen.dart'; - const generated = - 'test_resources/lib/gen/assets_flare_integrations.gen.dart'; - - await expectedAssetsGen(pubspec, generated, fact); - - final integration = FlareIntegration(''); - expect(integration.className, 'FlareGenImage'); - expect( - integration.classInstantiate( - AssetType( - rootPath: resPath, - path: 'assets/path', - flavors: {}, - ), - ), - 'FlareGenImage(\'assets/path\')', - ); - expect( - integration.isSupport( - AssetType( - rootPath: resPath, - path: 'assets/path/dog.flr', - flavors: {}, - ), - ), - isTrue, - ); - expect( - integration.isSupport( - AssetType( - rootPath: resPath, - path: 'assets/path/dog.json', - flavors: {}, - ), - ), - isFalse, - ); - expect(integration.isConstConstructor, isTrue); - expect(integration.classOutput.contains('_assetName,'), isTrue); - - final integrationWithPackage = FlareIntegration('package_name'); - expect( - integrationWithPackage.classOutput - .contains('\'packages/package_name/\$_assetName\','), - isTrue, - ); - }); - test('Assets with Rive integrations on pubspec.yaml', () async { const pubspec = 'test_resources/pubspec_assets_rive_integrations.yaml'; const fact = diff --git a/packages/core/test_resources/actual_data/assets.gen.dart b/packages/core/test_resources/actual_data/assets.gen.dart index 551a35822..ca3b59954 100644 --- a/packages/core/test_resources/actual_data/assets.gen.dart +++ b/packages/core/test_resources/actual_data/assets.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -28,10 +26,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -316,50 +314,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/assets_flare_integrations.gen.dart b/packages/core/test_resources/actual_data/assets_flare_integrations.gen.dart deleted file mode 100644 index 68b8b3b9c..000000000 --- a/packages/core/test_resources/actual_data/assets_flare_integrations.gen.dart +++ /dev/null @@ -1,75 +0,0 @@ -/// GENERATED CODE - DO NOT MODIFY BY HAND -/// ***************************************************** -/// FlutterGen -/// ***************************************************** - -// coverage:ignore-file -// ignore_for_file: type=lint -// ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use - -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; -import 'package:flutter/widgets.dart'; - -class $AssetsFlareGen { - const $AssetsFlareGen(); - - /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); - - /// List of all assets - List get values => [penguin]; -} - -class Assets { - Assets._(); - - static const $AssetsFlareGen flare = $AssetsFlareGen(); -} - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/assets_flavored.gen.dart b/packages/core/test_resources/actual_data/assets_flavored.gen.dart index 8bca86da6..63e56fe02 100644 --- a/packages/core/test_resources/actual_data/assets_flavored.gen.dart +++ b/packages/core/test_resources/actual_data/assets_flavored.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -28,10 +26,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -318,50 +316,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/assets_parse_metadata.gen.dart b/packages/core/test_resources/actual_data/assets_parse_metadata.gen.dart index fdd90fc02..4e85e5b98 100644 --- a/packages/core/test_resources/actual_data/assets_parse_metadata.gen.dart +++ b/packages/core/test_resources/actual_data/assets_parse_metadata.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -29,10 +27,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -325,50 +323,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/build_assets.gen.dart b/packages/core/test_resources/actual_data/build_assets.gen.dart index 0f8b98ff4..ca3b59954 100644 --- a/packages/core/test_resources/actual_data/build_assets.gen.dart +++ b/packages/core/test_resources/actual_data/build_assets.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -28,10 +26,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -56,13 +54,16 @@ class $AssetsImagesGen { AssetGenImage get logo => const AssetGenImage('assets/images/logo.png'); /// File path: assets/images/profile.jpg - AssetGenImage get profileJpg => const AssetGenImage('assets/images/profile.jpg'); + AssetGenImage get profileJpg => + const AssetGenImage('assets/images/profile.jpg'); /// File path: assets/images/profile.png - AssetGenImage get profilePng => const AssetGenImage('assets/images/profile.png'); + AssetGenImage get profilePng => + const AssetGenImage('assets/images/profile.png'); /// List of all assets - List get values => [chip1, chip2, logo, profileJpg, profilePng]; + List get values => + [chip1, chip2, logo, profileJpg, profilePng]; } class $AssetsJsonGen { @@ -102,7 +103,8 @@ class $AssetsImagesChip3Gen { const $AssetsImagesChip3Gen(); /// File path: assets/images/chip3/chip3.jpg - AssetGenImage get chip3 => const AssetGenImage('assets/images/chip3/chip3.jpg'); + AssetGenImage get chip3 => + const AssetGenImage('assets/images/chip3/chip3.jpg'); /// List of all assets List get values => [chip3]; @@ -112,7 +114,8 @@ class $AssetsImagesChip4Gen { const $AssetsImagesChip4Gen(); /// File path: assets/images/chip4/chip4.jpg - AssetGenImage get chip4 => const AssetGenImage('assets/images/chip4/chip4.jpg'); + AssetGenImage get chip4 => + const AssetGenImage('assets/images/chip4/chip4.jpg'); /// List of all assets List get values => [chip4]; @@ -122,10 +125,12 @@ class $AssetsImagesIconsGen { const $AssetsImagesIconsGen(); /// File path: assets/images/icons/dart@test.svg - SvgGenImage get dartTest => const SvgGenImage('assets/images/icons/dart@test.svg'); + SvgGenImage get dartTest => + const SvgGenImage('assets/images/icons/dart@test.svg'); /// File path: assets/images/icons/fuchsia.svg - SvgGenImage get fuchsia => const SvgGenImage('assets/images/icons/fuchsia.svg'); + SvgGenImage get fuchsia => + const SvgGenImage('assets/images/icons/fuchsia.svg'); /// File path: assets/images/icons/kmm.svg SvgGenImage get kmm => const SvgGenImage('assets/images/icons/kmm.svg'); @@ -298,7 +303,8 @@ class SvgGenImage { placeholderBuilder: placeholderBuilder, semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, - colorFilter: colorFilter ?? (color == null ? null : ColorFilter.mode(color, colorBlendMode)), + colorFilter: colorFilter ?? + (color == null ? null : ColorFilter.mode(color, colorBlendMode)), clipBehavior: clipBehavior, cacheColorFilter: cacheColorFilter, ); @@ -308,50 +314,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/build_empty.gen.dart b/packages/core/test_resources/actual_data/build_empty.gen.dart index 0f8b98ff4..ca3b59954 100644 --- a/packages/core/test_resources/actual_data/build_empty.gen.dart +++ b/packages/core/test_resources/actual_data/build_empty.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -28,10 +26,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -56,13 +54,16 @@ class $AssetsImagesGen { AssetGenImage get logo => const AssetGenImage('assets/images/logo.png'); /// File path: assets/images/profile.jpg - AssetGenImage get profileJpg => const AssetGenImage('assets/images/profile.jpg'); + AssetGenImage get profileJpg => + const AssetGenImage('assets/images/profile.jpg'); /// File path: assets/images/profile.png - AssetGenImage get profilePng => const AssetGenImage('assets/images/profile.png'); + AssetGenImage get profilePng => + const AssetGenImage('assets/images/profile.png'); /// List of all assets - List get values => [chip1, chip2, logo, profileJpg, profilePng]; + List get values => + [chip1, chip2, logo, profileJpg, profilePng]; } class $AssetsJsonGen { @@ -102,7 +103,8 @@ class $AssetsImagesChip3Gen { const $AssetsImagesChip3Gen(); /// File path: assets/images/chip3/chip3.jpg - AssetGenImage get chip3 => const AssetGenImage('assets/images/chip3/chip3.jpg'); + AssetGenImage get chip3 => + const AssetGenImage('assets/images/chip3/chip3.jpg'); /// List of all assets List get values => [chip3]; @@ -112,7 +114,8 @@ class $AssetsImagesChip4Gen { const $AssetsImagesChip4Gen(); /// File path: assets/images/chip4/chip4.jpg - AssetGenImage get chip4 => const AssetGenImage('assets/images/chip4/chip4.jpg'); + AssetGenImage get chip4 => + const AssetGenImage('assets/images/chip4/chip4.jpg'); /// List of all assets List get values => [chip4]; @@ -122,10 +125,12 @@ class $AssetsImagesIconsGen { const $AssetsImagesIconsGen(); /// File path: assets/images/icons/dart@test.svg - SvgGenImage get dartTest => const SvgGenImage('assets/images/icons/dart@test.svg'); + SvgGenImage get dartTest => + const SvgGenImage('assets/images/icons/dart@test.svg'); /// File path: assets/images/icons/fuchsia.svg - SvgGenImage get fuchsia => const SvgGenImage('assets/images/icons/fuchsia.svg'); + SvgGenImage get fuchsia => + const SvgGenImage('assets/images/icons/fuchsia.svg'); /// File path: assets/images/icons/kmm.svg SvgGenImage get kmm => const SvgGenImage('assets/images/icons/kmm.svg'); @@ -298,7 +303,8 @@ class SvgGenImage { placeholderBuilder: placeholderBuilder, semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, - colorFilter: colorFilter ?? (color == null ? null : ColorFilter.mode(color, colorBlendMode)), + colorFilter: colorFilter ?? + (color == null ? null : ColorFilter.mode(color, colorBlendMode)), clipBehavior: clipBehavior, cacheColorFilter: cacheColorFilter, ); @@ -308,50 +314,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/actual_data/build_runner_assets.gen.dart b/packages/core/test_resources/actual_data/build_runner_assets.gen.dart index 4643eef27..2d26b471f 100644 --- a/packages/core/test_resources/actual_data/build_runner_assets.gen.dart +++ b/packages/core/test_resources/actual_data/build_runner_assets.gen.dart @@ -7,8 +7,6 @@ // ignore_for_file: type=lint // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use -import 'package:flare_flutter/flare_actor.dart' as _flare_actor; -import 'package:flare_flutter/flare_controller.dart' as _flare_controller; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart' as _svg; @@ -28,10 +26,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -56,13 +54,16 @@ class $AssetsImagesGen { AssetGenImage get logo => const AssetGenImage('assets/images/logo.png'); /// File path: assets/images/profile.jpg - AssetGenImage get profileJpg => const AssetGenImage('assets/images/profile.jpg'); + AssetGenImage get profileJpg => + const AssetGenImage('assets/images/profile.jpg'); /// File path: assets/images/profile.png - AssetGenImage get profilePng => const AssetGenImage('assets/images/profile.png'); + AssetGenImage get profilePng => + const AssetGenImage('assets/images/profile.png'); /// List of all assets - List get values => [chip1, chip2, logo, profileJpg, profilePng]; + List get values => + [chip1, chip2, logo, profileJpg, profilePng]; } class $AssetsJsonGen { @@ -102,7 +103,8 @@ class $AssetsImagesChip3Gen { const $AssetsImagesChip3Gen(); /// File path: assets/images/chip3/chip3.jpg - AssetGenImage get chip3 => const AssetGenImage('assets/images/chip3/chip3.jpg'); + AssetGenImage get chip3 => + const AssetGenImage('assets/images/chip3/chip3.jpg'); /// List of all assets List get values => [chip3]; @@ -112,7 +114,8 @@ class $AssetsImagesChip4Gen { const $AssetsImagesChip4Gen(); /// File path: assets/images/chip4/chip4.jpg - AssetGenImage get chip4 => const AssetGenImage('assets/images/chip4/chip4.jpg'); + AssetGenImage get chip4 => + const AssetGenImage('assets/images/chip4/chip4.jpg'); /// List of all assets List get values => [chip4]; @@ -122,10 +125,12 @@ class $AssetsImagesIconsGen { const $AssetsImagesIconsGen(); /// File path: assets/images/icons/dart@test.svg - SvgGenImage get dartTest => const SvgGenImage('assets/images/icons/dart@test.svg'); + SvgGenImage get dartTest => + const SvgGenImage('assets/images/icons/dart@test.svg'); /// File path: assets/images/icons/fuchsia.svg - SvgGenImage get fuchsia => const SvgGenImage('assets/images/icons/fuchsia.svg'); + SvgGenImage get fuchsia => + const SvgGenImage('assets/images/icons/fuchsia.svg'); /// File path: assets/images/icons/kmm.svg SvgGenImage get kmm => const SvgGenImage('assets/images/icons/kmm.svg'); @@ -298,7 +303,8 @@ class SvgGenImage { placeholderBuilder: placeholderBuilder, semanticsLabel: semanticsLabel, excludeFromSemantics: excludeFromSemantics, - colorFilter: colorFilter ?? (color == null ? null : ColorFilter.mode(color, colorBlendMode)), + colorFilter: colorFilter ?? + (color == null ? null : ColorFilter.mode(color, colorBlendMode)), clipBehavior: clipBehavior, cacheColorFilter: cacheColorFilter, ); @@ -308,50 +314,3 @@ class SvgGenImage { String get keyName => _assetName; } - -class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} diff --git a/packages/core/test_resources/pubspec_assets.yaml b/packages/core/test_resources/pubspec_assets.yaml index b305ccf34..ae30a5fc5 100644 --- a/packages/core/test_resources/pubspec_assets.yaml +++ b/packages/core/test_resources/pubspec_assets.yaml @@ -6,7 +6,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true flutter: assets: diff --git a/packages/core/test_resources/pubspec_assets_flare_integrations.yaml b/packages/core/test_resources/pubspec_assets_flare_integrations.yaml deleted file mode 100644 index bb806829a..000000000 --- a/packages/core/test_resources/pubspec_assets_flare_integrations.yaml +++ /dev/null @@ -1,12 +0,0 @@ -name: test - -flutter_gen: - output: lib/gen/ - line_length: 80 - - integrations: - flare_flutter: true - -flutter: - assets: - - assets/flare/Penguin.flr diff --git a/packages/core/test_resources/pubspec_assets_flavored.yaml b/packages/core/test_resources/pubspec_assets_flavored.yaml index aa185e4a0..88a6fb102 100644 --- a/packages/core/test_resources/pubspec_assets_flavored.yaml +++ b/packages/core/test_resources/pubspec_assets_flavored.yaml @@ -6,7 +6,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true flutter: assets: diff --git a/packages/core/test_resources/pubspec_assets_flavored_duplicate_entry.yaml b/packages/core/test_resources/pubspec_assets_flavored_duplicate_entry.yaml index 53a4af6e9..9465039a2 100644 --- a/packages/core/test_resources/pubspec_assets_flavored_duplicate_entry.yaml +++ b/packages/core/test_resources/pubspec_assets_flavored_duplicate_entry.yaml @@ -6,7 +6,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true flutter: assets: diff --git a/packages/core/test_resources/pubspec_assets_parse_metadata.yaml b/packages/core/test_resources/pubspec_assets_parse_metadata.yaml index cf8177450..189de2691 100644 --- a/packages/core/test_resources/pubspec_assets_parse_metadata.yaml +++ b/packages/core/test_resources/pubspec_assets_parse_metadata.yaml @@ -7,7 +7,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true flutter: assets: diff --git a/packages/runner/example/lib/gen/assets.gen.dart b/packages/runner/example/lib/gen/assets.gen.dart index 13257364f..6028d3718 100644 --- a/packages/runner/example/lib/gen/assets.gen.dart +++ b/packages/runner/example/lib/gen/assets.gen.dart @@ -11,8 +11,6 @@ import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:vector_graphics/vector_graphics.dart'; -import 'package:flare_flutter/flare_actor.dart'; -import 'package:flare_flutter/flare_controller.dart'; import 'package:rive/rive.dart'; import 'package:lottie/lottie.dart'; @@ -20,10 +18,10 @@ class $AssetsFlareGen { const $AssetsFlareGen(); /// File path: assets/flare/Penguin.flr - FlareGenImage get penguin => const FlareGenImage('assets/flare/Penguin.flr'); + String get penguin => 'assets/flare/Penguin.flr'; /// List of all assets - List get values => [penguin]; + List get values => [penguin]; } class $AssetsImagesGen { @@ -316,49 +314,6 @@ class SvgGenImage { String get keyName => _assetName; } -class FlareGenImage { - const FlareGenImage(this._assetName); - - final String _assetName; - - FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - FlareController? controller, - FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return FlareActor( - _assetName, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => _assetName; -} - class RiveGenImage { const RiveGenImage(this._assetName); diff --git a/packages/runner/example/lib/main.dart b/packages/runner/example/lib/main.dart index 18052b97d..a73d58153 100644 --- a/packages/runner/example/lib/main.dart +++ b/packages/runner/example/lib/main.dart @@ -28,14 +28,6 @@ void main() async { mainAxisAlignment: MainAxisAlignment.center, children: [ // Auto generated image from FlutterGen. - SizedBox( - width: 200, - height: 200, - child: MyAssets.flare.penguin.flare( - animation: 'walk', - fit: BoxFit.contain, - ), - ), SizedBox( width: 200, height: 200, @@ -102,13 +94,6 @@ void main() async { fit: BoxFit.contain, ), ), - SizedBox( - width: 200, - height: 200, - child: ResAssets.images.favorite.flare( - shouldClip: false, - ), - ), SizedBox( width: 200, height: 200, From a220dc650aeacd2852f13fd39ed8af1968b632e3 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 15:02:21 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=F0=9F=94=A5=20Remove=20flare=20configura?= =?UTF-8?q?tions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/example/pubspec.yaml | 2 - examples/example_resources/pubspec.yaml | 2 - .../core/lib/generators/assets_generator.dart | 3 - .../integrations/flare_integration.dart | 91 ------------------- packages/core/lib/settings/pubspec.dart | 5 - packages/core/lib/settings/pubspec.g.dart | 8 +- 6 files changed, 1 insertion(+), 110 deletions(-) delete mode 100644 packages/core/lib/generators/integrations/flare_integration.dart diff --git a/examples/example/pubspec.yaml b/examples/example/pubspec.yaml index 6b67f2e9b..62654fd8e 100644 --- a/examples/example/pubspec.yaml +++ b/examples/example/pubspec.yaml @@ -11,7 +11,6 @@ dependencies: sdk: flutter flutter_svg: ^2.0.0 - flare_flutter: ^3.0.0 rive: ^0.11.0 lottie: ^2.0.0 @@ -31,7 +30,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true rive: true lottie: true diff --git a/examples/example_resources/pubspec.yaml b/examples/example_resources/pubspec.yaml index 7fd41f0ab..a853c6a1a 100644 --- a/examples/example_resources/pubspec.yaml +++ b/examples/example_resources/pubspec.yaml @@ -11,7 +11,6 @@ dependencies: sdk: flutter flutter_svg: ^2.0.0 - flare_flutter: ^3.0.0 rive: ^0.11.0 lottie: ^2.0.0 @@ -25,7 +24,6 @@ flutter_gen: integrations: flutter_svg: true - flare_flutter: true rive: true lottie: true diff --git a/packages/core/lib/generators/assets_generator.dart b/packages/core/lib/generators/assets_generator.dart index ea1635853..bc860cb7c 100644 --- a/packages/core/lib/generators/assets_generator.dart +++ b/packages/core/lib/generators/assets_generator.dart @@ -5,7 +5,6 @@ import 'package:collection/collection.dart'; import 'package:dart_style/dart_style.dart'; import 'package:dartx/dartx.dart' hide IterableSorted; import 'package:flutter_gen_core/generators/generator_helper.dart'; -import 'package:flutter_gen_core/generators/integrations/flare_integration.dart'; import 'package:flutter_gen_core/generators/integrations/image_integration.dart'; import 'package:flutter_gen_core/generators/integrations/integration.dart'; import 'package:flutter_gen_core/generators/integrations/lottie_integration.dart'; @@ -65,8 +64,6 @@ Future generateAssets( if (config.flutterGen.integrations.flutterSvg) SvgIntegration(config.packageParameterLiteral, parseMetadata: config.flutterGen.parseMetadata), - if (config.flutterGen.integrations.flareFlutter) - FlareIntegration(config.packageParameterLiteral), if (config.flutterGen.integrations.rive) RiveIntegration(config.packageParameterLiteral), if (config.flutterGen.integrations.lottie) diff --git a/packages/core/lib/generators/integrations/flare_integration.dart b/packages/core/lib/generators/integrations/flare_integration.dart deleted file mode 100644 index d8088813f..000000000 --- a/packages/core/lib/generators/integrations/flare_integration.dart +++ /dev/null @@ -1,91 +0,0 @@ -import 'dart:io'; - -import 'package:flutter_gen_core/generators/integrations/integration.dart'; - -class FlareIntegration extends Integration { - FlareIntegration(String packageName) : super(packageName); - - String? get packageExpression => isPackage ? 'packages/$packageName/' : null; - - @override - List get requiredImports => [ - Import('package:flutter/widgets.dart'), - Import( - 'package:flare_flutter/flare_actor.dart', - alias: '_flare_actor', - ), - Import( - 'package:flare_flutter/flare_controller.dart', - alias: '_flare_controller', - ), - ]; - - @override - String get classOutput => _classDefinition; - - String get _classDefinition => '''class FlareGenImage { - const FlareGenImage( - this._assetName, { - this.flavors = const {}, - }); - - final String _assetName; - final Set flavors; - -${isPackage ? "\n static const String package = '$packageName';" : ''} - - _flare_actor.FlareActor flare({ - String? boundsNode, - String? animation, - BoxFit fit = BoxFit.contain, - Alignment alignment = Alignment.center, - bool isPaused = false, - bool snapToEnd = false, - _flare_controller.FlareController? controller, - _flare_actor.FlareCompletedCallback? callback, - Color? color, - bool shouldClip = true, - bool sizeFromArtboard = false, - String? artboard, - bool antialias = true, - }) { - return _flare_actor.FlareActor( - ${isPackage ? '\'$packageExpression\$_assetName\'' : '_assetName'}, - boundsNode: boundsNode, - animation: animation, - fit: fit, - alignment: alignment, - isPaused: isPaused, - snapToEnd: snapToEnd, - controller: controller, - callback: callback, - color: color, - shouldClip: shouldClip, - sizeFromArtboard: sizeFromArtboard, - artboard: artboard, - antialias: antialias, - ); - } - - String get path => _assetName; - - String get keyName => ${isPackage ? '\'$packageExpression\$_assetName\'' : '_assetName'}; -}'''; - - @override - String get className => 'FlareGenImage'; - - @override - bool isSupport(AssetType asset) { - if (asset.extension == '.flr') { - stdout.writeln( - 'Legacy Flare files are no longer supported for the generation.\n' - 'https://help.rive.app/getting-started/faq-1/importing-rive-1-files.', - ); - } - return false; - } - - @override - bool get isConstConstructor => true; -} diff --git a/packages/core/lib/settings/pubspec.dart b/packages/core/lib/settings/pubspec.dart index 6b38c713c..16a2db681 100644 --- a/packages/core/lib/settings/pubspec.dart +++ b/packages/core/lib/settings/pubspec.dart @@ -158,7 +158,6 @@ class FlutterGenFonts { class FlutterGenIntegrations { FlutterGenIntegrations({ required this.flutterSvg, - required this.flareFlutter, required this.rive, required this.lottie, }); @@ -166,10 +165,6 @@ class FlutterGenIntegrations { @JsonKey(name: 'flutter_svg', required: true) final bool flutterSvg; - @Deprecated('This will be removed in 6.0.0') - @JsonKey(name: 'flare_flutter', required: true) - final bool flareFlutter; - @JsonKey(name: 'rive', required: true) final bool rive; diff --git a/packages/core/lib/settings/pubspec.g.dart b/packages/core/lib/settings/pubspec.g.dart index 88be3070e..8ec7e78c3 100644 --- a/packages/core/lib/settings/pubspec.g.dart +++ b/packages/core/lib/settings/pubspec.g.dart @@ -167,16 +167,10 @@ FlutterGenIntegrations _$FlutterGenIntegrationsFromJson(Map json) => ($checkedConvert) { $checkKeys( json, - requiredKeys: const [ - 'flutter_svg', - 'flare_flutter', - 'rive', - 'lottie' - ], + requiredKeys: const ['flutter_svg', 'rive', 'lottie'], ); final val = FlutterGenIntegrations( flutterSvg: $checkedConvert('flutter_svg', (v) => v as bool), - flareFlutter: $checkedConvert('flare_flutter', (v) => v as bool), rive: $checkedConvert('rive', (v) => v as bool), lottie: $checkedConvert('lottie', (v) => v as bool), ); From 08749b8987fb4bd8b71c2d156c0405599ed3e154 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 17:47:14 +0800 Subject: [PATCH 03/17] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20Disallow=20unrecogni?= =?UTF-8?q?zed=20keys?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/build.yaml | 2 +- packages/core/lib/settings/pubspec.g.dart | 35 ++++++++++++++++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/core/build.yaml b/packages/core/build.yaml index 6aa402572..5c92df193 100644 --- a/packages/core/build.yaml +++ b/packages/core/build.yaml @@ -7,7 +7,7 @@ targets: checked: true create_factory: true create_to_json: false - disallow_unrecognized_keys: false + disallow_unrecognized_keys: true explicit_to_json: false field_rename: none generic_argument_factories: false diff --git a/packages/core/lib/settings/pubspec.g.dart b/packages/core/lib/settings/pubspec.g.dart index 8ec7e78c3..fcdf70ef9 100644 --- a/packages/core/lib/settings/pubspec.g.dart +++ b/packages/core/lib/settings/pubspec.g.dart @@ -12,6 +12,7 @@ Pubspec _$PubspecFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['name', 'flutter_gen', 'flutter'], requiredKeys: const ['name', 'flutter_gen', 'flutter'], ); final val = Pubspec( @@ -32,6 +33,7 @@ Flutter _$FlutterFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['assets', 'fonts'], requiredKeys: const ['assets', 'fonts'], ); final val = Flutter( @@ -53,6 +55,7 @@ FlutterFonts _$FlutterFontsFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['family'], requiredKeys: const ['family'], ); final val = FlutterFonts( @@ -68,6 +71,15 @@ FlutterGen _$FlutterGenFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const [ + 'output', + 'line_length', + 'parse_metadata', + 'assets', + 'fonts', + 'integrations', + 'colors' + ], requiredKeys: const [ 'output', 'line_length', @@ -105,6 +117,7 @@ FlutterGenColors _$FlutterGenColorsFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['enabled', 'inputs', 'outputs'], requiredKeys: const ['enabled', 'inputs', 'outputs'], ); final val = FlutterGenColors( @@ -124,6 +137,13 @@ FlutterGenAssets _$FlutterGenAssetsFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const [ + 'enabled', + 'package_parameter_enabled', + 'style', + 'outputs', + 'exclude' + ], requiredKeys: const ['enabled', 'outputs', 'exclude'], ); final val = FlutterGenAssets( @@ -149,6 +169,7 @@ FlutterGenFonts _$FlutterGenFontsFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['enabled', 'outputs'], requiredKeys: const ['enabled', 'outputs'], ); final val = FlutterGenFonts( @@ -167,6 +188,7 @@ FlutterGenIntegrations _$FlutterGenIntegrationsFromJson(Map json) => ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['flutter_svg', 'rive', 'lottie'], requiredKeys: const ['flutter_svg', 'rive', 'lottie'], ); final val = FlutterGenIntegrations( @@ -176,10 +198,7 @@ FlutterGenIntegrations _$FlutterGenIntegrationsFromJson(Map json) => ); return val; }, - fieldKeyMap: const { - 'flutterSvg': 'flutter_svg', - 'flareFlutter': 'flare_flutter' - }, + fieldKeyMap: const {'flutterSvg': 'flutter_svg'}, ); FlutterGenElementOutputs _$FlutterGenElementOutputsFromJson(Map json) => @@ -189,6 +208,7 @@ FlutterGenElementOutputs _$FlutterGenElementOutputsFromJson(Map json) => ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['class_name'], requiredKeys: const ['class_name'], ); final val = FlutterGenElementOutputs( @@ -207,6 +227,12 @@ FlutterGenElementAssetsOutputs _$FlutterGenElementAssetsOutputsFromJson( ($checkedConvert) { $checkKeys( json, + allowedKeys: const [ + 'class_name', + 'package_parameter_enabled', + 'directory_path_enabled', + 'style' + ], requiredKeys: const ['class_name', 'style'], ); final val = FlutterGenElementAssetsOutputs( @@ -234,6 +260,7 @@ FlutterGenElementFontsOutputs _$FlutterGenElementFontsOutputsFromJson( ($checkedConvert) { $checkKeys( json, + allowedKeys: const ['class_name', 'package_parameter_enabled'], requiredKeys: const ['class_name'], ); final val = FlutterGenElementFontsOutputs( From 74f420592929e78f34f3ce5dc4ac9eab718f1eb6 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 19:24:09 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E2=9C=85=20Update=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/command/.gitignore | 1 + packages/command/bin/flutter_gen_command.dart | 7 +- packages/command/test/deprecated_configs.yaml | 9 ++ .../test/flutter_gen_command_test.dart | 19 +++- .../core/lib/generators/assets_generator.dart | 106 ++++++------------ .../core/lib/generators/generator_helper.dart | 66 +++++++++++ packages/core/lib/settings/config.dart | 6 + .../core/lib/settings/config_default.dart | 1 - packages/core/lib/settings/pubspec.dart | 6 +- packages/core/lib/settings/pubspec.g.dart | 3 - packages/core/test/assets_gen_test.dart | 34 ++++++ 11 files changed, 172 insertions(+), 86 deletions(-) create mode 100644 packages/command/.gitignore create mode 100644 packages/command/test/deprecated_configs.yaml diff --git a/packages/command/.gitignore b/packages/command/.gitignore new file mode 100644 index 000000000..42fff19d9 --- /dev/null +++ b/packages/command/.gitignore @@ -0,0 +1 @@ +test/lib/gen/ \ No newline at end of file diff --git a/packages/command/bin/flutter_gen_command.dart b/packages/command/bin/flutter_gen_command.dart index 21f33c364..e4f71f5fc 100644 --- a/packages/command/bin/flutter_gen_command.dart +++ b/packages/command/bin/flutter_gen_command.dart @@ -18,7 +18,6 @@ void main(List args) { 'build', abbr: 'b', help: 'Set the path of build.yaml.', - defaultsTo: 'build.yaml', ); parser.addFlag( @@ -57,11 +56,11 @@ void main(List args) { } final pubspecFile = File(pubspecPath).absolute; - final buildPath = safeCast(results['build']); - if (buildPath == null || buildPath.trim().isEmpty) { + final buildPath = safeCast(results['build'])?.trim(); + if (buildPath?.isEmpty ?? false) { throw ArgumentError('Invalid value $buildPath', 'build'); } - final buildFile = File(buildPath).absolute; + final buildFile = buildPath == null ? null : File(buildPath).absolute; FlutterGenerator(pubspecFile, buildFile: buildFile).build(); } diff --git a/packages/command/test/deprecated_configs.yaml b/packages/command/test/deprecated_configs.yaml new file mode 100644 index 000000000..f41a16c50 --- /dev/null +++ b/packages/command/test/deprecated_configs.yaml @@ -0,0 +1,9 @@ +flutter: + assets: + - assets/ + +flutter_gen: + assets: + enabled: true + style: snake-case + package_parameter_enabled: true \ No newline at end of file diff --git a/packages/command/test/flutter_gen_command_test.dart b/packages/command/test/flutter_gen_command_test.dart index e954681dc..e45a50843 100644 --- a/packages/command/test/flutter_gen_command_test.dart +++ b/packages/command/test/flutter_gen_command_test.dart @@ -1,5 +1,6 @@ import 'dart:io' show Platform; +import 'package:flutter_gen_core/generators/generator_helper.dart' as helper; import 'package:flutter_gen_core/version.gen.dart'; import 'package:test/test.dart'; import 'package:test_process/test_process.dart'; @@ -52,7 +53,7 @@ void main() { await process.shouldExit(0); }); - test('Execute wrong argments with fluttergen --wrong', () async { + test('Execute wrong arguments with fluttergen --wrong', () async { var process = await TestProcess.start( 'dart', ['bin/flutter_gen_command.dart', '--wrong'], @@ -67,4 +68,20 @@ void main() { ); await process.shouldExit(0); }); + + test('Execute deprecated config with fluttergen', () async { + final process = await TestProcess.start( + 'dart', + [ + 'bin/flutter_gen_command.dart', + '--config', + 'test/deprecated_configs.yaml', + ], + ); + final errors = (await process.stderr.rest.toList()).join('\n'); + expect(errors, contains(helper.sWarning)); + expect(errors, contains('style')); + expect(errors, contains('package_parameter_enabled')); + await process.shouldExit(0); + }); } diff --git a/packages/core/lib/generators/assets_generator.dart b/packages/core/lib/generators/assets_generator.dart index bc860cb7c..1e7eea144 100644 --- a/packages/core/lib/generators/assets_generator.dart +++ b/packages/core/lib/generators/assets_generator.dart @@ -70,84 +70,42 @@ Future generateAssets( LottieIntegration(config.packageParameterLiteral), ]; + // Warn for deprecated configs. final deprecatedStyle = config.flutterGen.assets.style != null; final deprecatedPackageParam = config.flutterGen.assets.packageParameterEnabled != null; if (deprecatedStyle || deprecatedPackageParam) { - stderr.writeln(''' - - ░░░░ - - ██ - ██░░██ - ░░ ░░ ██░░░░░░██ ░░░░ - ██░░░░░░░░░░██ - ██░░░░░░░░░░██ - ██░░░░░░░░░░░░░░██ - ██░░░░░░██████░░░░░░██ - ██░░░░░░██████░░░░░░██ - ██░░░░░░░░██████░░░░░░░░██ - ██░░░░░░░░██████░░░░░░░░██ - ██░░░░░░░░░░██████░░░░░░░░░░██ - ██░░░░░░░░░░░░██████░░░░░░░░░░░░██ - ██░░░░░░░░░░░░██████░░░░░░░░░░░░██ - ██░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░██ - ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ - ██░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░██ - ██░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░██ - ██░░░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░██ - ░░ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ - ██████████████████████████████████████████ - - - ░░'''); - } - if (deprecatedStyle && deprecatedPackageParam) { - stderr.writeln(''' - ┌────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ ⚠️ Warning │ - │ The `style` and `package_parameter_enabled` property moved from asset to under asset.output. │ - │ It should be changed in the following pubspec.yaml. │ - │ https://github.com/FlutterGen/flutter_gen/pull/294 │ - │ │ - │ [pubspec.yaml] │ - │ │ - │ flutter_gen: │ - │ assets: │ - │ outputs: │ - │ style: snake-case │ - │ package_parameter_enabled: true │ - └────────────────────────────────────────────────────────────────────────────────────────────────┘'''); - } else if (deprecatedStyle) { - stderr.writeln(''' - ┌───────────────────────────────────────────────────────────────────────┐ - │ ⚠️ Warning │ - │ The `style` property moved from asset to under asset.output. │ - │ It should be changed in the following ways │ - │ https://github.com/FlutterGen/flutter_gen/pull/294 │ - │ │ - │ [pubspec.yaml] │ - │ │ - │ flutter_gen: │ - │ assets: │ - │ outputs: │ - │ style: snake-case │ - └───────────────────────────────────────────────────────────────────────┘'''); - } else if (deprecatedPackageParam) { - stderr.writeln(''' - ┌────────────────────────────────────────────────────────────────────────────────────────┐ - │ ⚠️ Warning │ - │ The `package_parameter_enabled` property moved from asset to under asset.output. │ - │ It should be changed in the following pubspec.yaml. │ - │ https://github.com/FlutterGen/flutter_gen/pull/294 │ - │ │ - │ [pubspec.yaml] │ - │ │ - │ flutter_gen: │ - │ assets: │ - │ outputs: │ - │ package_parameter_enabled: true │ - └────────────────────────────────────────────────────────────────────────────────────────┘'''); + stderr.writeln(sWarning); + if (deprecatedStyle) { + stderr.writeln( + sBuildDeprecation( + 'style', + 'asset', + 'asset.output', + 'https://github.com/FlutterGen/flutter_gen/pull/294', + [ + ' assets:', + ' outputs:', + ' style: snake-case', + ], + ), + ); + } + if (deprecatedPackageParam) { + stderr.writeln( + sBuildDeprecation( + 'package_parameter_enabled', + 'asset', + 'asset.output', + 'https://github.com/FlutterGen/flutter_gen/pull/294', + [ + ' assets:', + ' outputs:', + ' package_parameter_enabled: true', + ], + ), + ); + } } final classesBuffer = StringBuffer(); diff --git a/packages/core/lib/generators/generator_helper.dart b/packages/core/lib/generators/generator_helper.dart index fab1aa04b..5af4b00eb 100644 --- a/packages/core/lib/generators/generator_helper.dart +++ b/packages/core/lib/generators/generator_helper.dart @@ -1,3 +1,4 @@ +import 'package:collection/collection.dart'; import 'package:flutter_gen_core/settings/import.dart'; String get header { @@ -21,3 +22,68 @@ String import(Import package) { return 'import \'${package.import}\'' '${package.alias != null ? ' as ${package.alias}' : ''};'; } + +const sWarning = ''' + + ░░░░ + + ██ + ██░░██ + ░░ ░░ ██░░░░░░██ ░░░░ + ██░░░░░░░░░░██ + ██░░░░░░░░░░██ + ██░░░░░░░░░░░░░░██ + ██░░░░░░██████░░░░░░██ + ██░░░░░░██████░░░░░░██ + ██░░░░░░░░██████░░░░░░░░██ + ██░░░░░░░░██████░░░░░░░░██ + ██░░░░░░░░░░██████░░░░░░░░░░██ + ██░░░░░░░░░░░░██████░░░░░░░░░░░░██ + ██░░░░░░░░░░░░██████░░░░░░░░░░░░██ + ██░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░██ + ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ + ██░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░██ + ██░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░██ + ██░░░░░░░░░░░░░░░░░░██████░░░░░░░░░░░░░░░░░░██ + ░░ ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██ + ██████████████████████████████████████████ + + + ░░'''; + +String sBuildDeprecation( + String deprecated, + String oldLocation, + String newLocation, + String url, + List migration, +) { + final lines = [ + '⚠️ Warning', + 'The $deprecated option has been moved from `$oldLocation` to `$newLocation`.', + 'It should be changed in the `pubspec.yaml`.', + url, + '', + '```yaml', + 'flutter_gen:', + ...migration, + '```' + ]; + + final longestLineLength = lines + .map((line) => line + .split('\n') + .sorted((a, b) => b.length.compareTo(b.length)) + .first + .length) + .sorted((a, b) => b.compareTo(a)) + .first; + + final buffer = StringBuffer(); + buffer.writeln('┌${'─' * (longestLineLength + 2)}┐'); + for (final line in lines) { + buffer.writeln('| ${line.padRight(longestLineLength)} |'); + } + buffer.writeln('└${'─' * (longestLineLength + 2)}┘'); + return buffer.toString(); +} diff --git a/packages/core/lib/settings/config.dart b/packages/core/lib/settings/config.dart index 2a27482df..c6d353e44 100644 --- a/packages/core/lib/settings/config.dart +++ b/packages/core/lib/settings/config.dart @@ -32,6 +32,12 @@ Config loadPubspecConfig(File pubspecFile, {File? buildFile}) { '[FlutterGen] Reading options from $pubspecLocaleHint', ); + // Fallback to the build.yaml when no build file has been specified and + // the default one exists. + if (buildFile == null && File('build.yaml').existsSync()) { + buildFile = File('build.yaml'); + } + if (buildFile != null) { if (buildFile.existsSync()) { final buildContent = buildFile.readAsStringSync(); diff --git a/packages/core/lib/settings/config_default.dart b/packages/core/lib/settings/config_default.dart index d5ba4cefa..32fd49004 100644 --- a/packages/core/lib/settings/config_default.dart +++ b/packages/core/lib/settings/config_default.dart @@ -12,7 +12,6 @@ flutter_gen: # Optional integrations: flutter_svg: false - flare_flutter: false rive: false lottie: false diff --git a/packages/core/lib/settings/pubspec.dart b/packages/core/lib/settings/pubspec.dart index 16a2db681..e5a5abb49 100644 --- a/packages/core/lib/settings/pubspec.dart +++ b/packages/core/lib/settings/pubspec.dart @@ -4,7 +4,7 @@ part 'pubspec.g.dart'; // NOTE: Run `melos gen:build_runner` after editing this file -@JsonSerializable() +@JsonSerializable(disallowUnrecognizedKeys: false) class Pubspec { Pubspec({ required this.packageName, @@ -24,7 +24,7 @@ class Pubspec { final Flutter flutter; } -@JsonSerializable() +@JsonSerializable(disallowUnrecognizedKeys: false) class Flutter { Flutter({ required this.assets, @@ -40,7 +40,7 @@ class Flutter { factory Flutter.fromJson(Map json) => _$FlutterFromJson(json); } -@JsonSerializable() +@JsonSerializable(disallowUnrecognizedKeys: false) class FlutterFonts { FlutterFonts({required this.family}); diff --git a/packages/core/lib/settings/pubspec.g.dart b/packages/core/lib/settings/pubspec.g.dart index fcdf70ef9..c30b45917 100644 --- a/packages/core/lib/settings/pubspec.g.dart +++ b/packages/core/lib/settings/pubspec.g.dart @@ -12,7 +12,6 @@ Pubspec _$PubspecFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, - allowedKeys: const ['name', 'flutter_gen', 'flutter'], requiredKeys: const ['name', 'flutter_gen', 'flutter'], ); final val = Pubspec( @@ -33,7 +32,6 @@ Flutter _$FlutterFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, - allowedKeys: const ['assets', 'fonts'], requiredKeys: const ['assets', 'fonts'], ); final val = Flutter( @@ -55,7 +53,6 @@ FlutterFonts _$FlutterFontsFromJson(Map json) => $checkedCreate( ($checkedConvert) { $checkKeys( json, - allowedKeys: const ['family'], requiredKeys: const ['family'], ); final val = FlutterFonts( diff --git a/packages/core/test/assets_gen_test.dart b/packages/core/test/assets_gen_test.dart index 781b8ab66..b60915eb0 100644 --- a/packages/core/test/assets_gen_test.dart +++ b/packages/core/test/assets_gen_test.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:dart_style/dart_style.dart'; import 'package:dartx/dartx.dart'; import 'package:flutter_gen_core/generators/assets_generator.dart'; +import 'package:flutter_gen_core/generators/generator_helper.dart'; import 'package:flutter_gen_core/settings/asset_type.dart'; import 'package:flutter_gen_core/settings/config.dart'; import 'package:flutter_gen_core/utils/error.dart'; @@ -267,4 +268,37 @@ void main() { expectedPackageNameGen(pubspec, fact); }); }); + + group('gen helper', () { + test('build deprecations', () { + expect( + sBuildDeprecation( + 'style', + 'asset', + 'asset.output', + 'https://github.com/FlutterGen/flutter_gen/pull/294', + [ + ' assets:', + ' outputs:', + ' style: snake-case', + ], + ), + equals(''' +┌─────────────────────────────────────────────────────────────────┐ +| ⚠️ Warning | +| The style option has been moved from `asset` to `asset.output`. | +| It should be changed in the `pubspec.yaml`. | +| https://github.com/FlutterGen/flutter_gen/pull/294 | +| | +| ```yaml | +| flutter_gen: | +| assets: | +| outputs: | +| style: snake-case | +| ``` | +└─────────────────────────────────────────────────────────────────┘ +'''), + ); + }); + }); } From 063512f92489d187db152d0ffec6290d0d84d017 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:18:13 +0800 Subject: [PATCH 05/17] =?UTF-8?q?=F0=9F=94=8A=20Add=20test=20logs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/test/gen_test_helper.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/core/test/gen_test_helper.dart b/packages/core/test/gen_test_helper.dart index c0927dbe7..d47e52096 100644 --- a/packages/core/test/gen_test_helper.dart +++ b/packages/core/test/gen_test_helper.dart @@ -17,6 +17,7 @@ Future> runAssetsGen( String fact, { String? build, }) async { + stdout.writeln('[DEBUG] test: Generate from config...'); final pubspecFile = File(pubspec); File? buildFile; @@ -28,6 +29,7 @@ Future> runAssetsGen( assetsName: p.basename(generated), ).build(); + stdout.writeln('[DEBUG] test: Generate from API...'); final config = loadPubspecConfig(pubspecFile, buildFile: buildFile); final formatter = DartFormatter( languageVersion: DartFormatter.latestLanguageVersion, From 7756bc54dbe1ecb84b9b5e6bbad64e6bb360806b Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:18:34 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E2=9C=85=20Fix=20flaky=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/test/flutter_gen_test.dart | 74 +++++++++++++----------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/packages/core/test/flutter_gen_test.dart b/packages/core/test/flutter_gen_test.dart index 4b269d963..cbc73d4a4 100644 --- a/packages/core/test/flutter_gen_test.dart +++ b/packages/core/test/flutter_gen_test.dart @@ -17,6 +17,7 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); + expect(File(assets).existsSync(), isFalse); expect(File(fonts).existsSync(), isFalse); expect(File(colors).existsSync(), isFalse); @@ -34,6 +35,7 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); + expect(File(assets).existsSync(), isFalse); expect(File(fonts).existsSync(), isFalse); expect(File(colors).existsSync(), isFalse); @@ -51,6 +53,7 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); + expect(File(assets).existsSync(), isFalse); expect(File(fonts).existsSync(), isFalse); expect(File(colors).existsSync(), isFalse); @@ -70,12 +73,10 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); - expect(File('test_resources/lib/gen/$assets').readAsStringSync(), - isNotEmpty); - expect( - File('test_resources/lib/gen/$fonts').readAsStringSync(), isNotEmpty); - expect(File('test_resources/lib/gen/$colors').readAsStringSync(), - isNotEmpty); + + expect(File('test_resources/lib/gen/$assets').existsSync(), isTrue); + expect(File('test_resources/lib/gen/$fonts').existsSync(), isTrue); + expect(File('test_resources/lib/gen/$colors').existsSync(), isTrue); }); test('Only flutter value', () async { @@ -90,10 +91,9 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); - expect(File('test_resources/lib/gen/$assets').readAsStringSync(), - isNotEmpty); - expect( - File('test_resources/lib/gen/$fonts').readAsStringSync(), isNotEmpty); + + expect(File('test_resources/lib/gen/$assets').existsSync(), isTrue); + expect(File('test_resources/lib/gen/$fonts').existsSync(), isTrue); expect(File(colors).existsSync(), isFalse); }); @@ -109,10 +109,10 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); + expect(File(assets).existsSync(), isFalse); expect(File(fonts).existsSync(), isFalse); - expect(File('test_resources/lib/gen/$colors').readAsStringSync(), - isNotEmpty); + expect(File('test_resources/lib/gen/$colors').existsSync(), isTrue); }); test('Change output path', () async { @@ -128,12 +128,18 @@ void main() { fontsName: fonts, ).build(); - expect(File('test_resources/lib/aaa/bbb/ccc/$assets').readAsStringSync(), - isNotEmpty); - expect(File('test_resources/lib/aaa/bbb/ccc/$colors').readAsStringSync(), - isNotEmpty); - expect(File('test_resources/lib/aaa/bbb/ccc/$fonts').readAsStringSync(), - isNotEmpty); + expect( + File('test_resources/lib/aaa/bbb/ccc/$assets').existsSync(), + isTrue, + ); + expect( + File('test_resources/lib/aaa/bbb/ccc/$colors').existsSync(), + isTrue, + ); + expect( + File('test_resources/lib/aaa/bbb/ccc/$fonts').existsSync(), + isTrue, + ); }); test('Empty output path', () async { @@ -148,12 +154,10 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); - expect(File('test_resources/lib/gen/$assets').readAsStringSync(), - isNotEmpty); - expect( - File('test_resources/lib/gen/$fonts').readAsStringSync(), isNotEmpty); - expect(File('test_resources/lib/gen/$colors').readAsStringSync(), - isNotEmpty); + + expect(File('test_resources/lib/gen/$assets').existsSync(), isTrue); + expect(File('test_resources/lib/gen/$fonts').existsSync(), isTrue); + expect(File('test_resources/lib/gen/$colors').existsSync(), isTrue); }); test('Wrong lineLength', () async { @@ -169,15 +173,17 @@ void main() { const assets = 'none_assets.gen.dart'; const colors = 'none_colors.gen.dart'; const fonts = 'none_fonts.gen.dart'; - FlutterGenerator( + + await FlutterGenerator( File(pubspec), assetsName: assets, colorsName: colors, fontsName: fonts, - ); - expect(File('test_resources/lib/gen/$assets').existsSync(), false); - expect(File('test_resources/lib/gen/$fonts').existsSync(), false); - expect(File('test_resources/lib/gen/$colors').existsSync(), false); + ).build(); + + expect(File('test_resources/lib/gen/$assets').existsSync(), isFalse); + expect(File('test_resources/lib/gen/$fonts').existsSync(), isFalse); + expect(File('test_resources/lib/gen/$colors').existsSync(), isFalse); }); test('With build_output.yaml', () async { @@ -194,12 +200,10 @@ void main() { colorsName: colors, fontsName: fonts, ).build(); - expect(File('test_resources/lib/build_gen/$assets').readAsStringSync(), - isNotEmpty); - expect(File('test_resources/lib/build_gen/$fonts').readAsStringSync(), - isNotEmpty); - expect(File('test_resources/lib/build_gen/$colors').readAsStringSync(), - isNotEmpty); + + expect(File('test_resources/lib/build_gen/$assets').existsSync(), isTrue); + expect(File('test_resources/lib/build_gen/$fonts').existsSync(), isTrue); + expect(File('test_resources/lib/build_gen/$colors').existsSync(), isTrue); }); }); } From f7f6acd41cdf0186941668290d6acbcdf8edc15d Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:19:02 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E2=9C=85=20Test=20concurrency=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- melos.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/melos.yaml b/melos.yaml index 065e86175..eb578cabc 100644 --- a/melos.yaml +++ b/melos.yaml @@ -82,6 +82,7 @@ scripts: test:dart: run: dart test exec: + concurrency: 1 failFast: true packageFilters: flutter: false @@ -91,6 +92,7 @@ scripts: test:flutter: run: flutter test exec: + concurrency: 1 failFast: true packageFilters: flutter: true From a5541aa9c27d0a0056aa2594a5739ccda8c0ffc4 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:21:05 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E2=9C=85=20Fix=20version=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/command/bin/flutter_gen_command.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/command/bin/flutter_gen_command.dart b/packages/command/bin/flutter_gen_command.dart index e4f71f5fc..f457bece6 100644 --- a/packages/command/bin/flutter_gen_command.dart +++ b/packages/command/bin/flutter_gen_command.dart @@ -41,7 +41,7 @@ void main(List args) { stdout.writeln(parser.usage); return; } else if (results.wasParsed('version')) { - stdout.writeln('FlutterGen v$packageVersion'); + stdout.writeln('[FlutterGen] v$packageVersion'); return; } } on FormatException catch (e) { From a76281980d93ef73b2d98cfab7e7e2d675f9a353 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:21:24 +0800 Subject: [PATCH 09/17] =?UTF-8?q?=F0=9F=90=9B=20Fix=20build.yaml=20reading?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/lib/settings/config.dart | 27 ++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/packages/core/lib/settings/config.dart b/packages/core/lib/settings/config.dart index c6d353e44..84c4c5fed 100644 --- a/packages/core/lib/settings/config.dart +++ b/packages/core/lib/settings/config.dart @@ -32,20 +32,31 @@ Config loadPubspecConfig(File pubspecFile, {File? buildFile}) { '[FlutterGen] Reading options from $pubspecLocaleHint', ); + YamlMap? getBuildFileOptions(File file) { + if (!file.existsSync()) { + return null; + } + final buildContent = file.readAsStringSync(); + final rawMap = loadYaml(buildContent) as Map?; + final builders = rawMap?['targets']?[r'$default']?['builders']; + final optionBuildMap = (builders?['flutter_gen_runner'] ?? + builders?['flutter_gen'])?['options']; + if (optionBuildMap is YamlMap && optionBuildMap.isNotEmpty) { + return optionBuildMap; + } + return null; + } + // Fallback to the build.yaml when no build file has been specified and - // the default one exists. - if (buildFile == null && File('build.yaml').existsSync()) { + // the default one has valid configurations. + if (buildFile == null && getBuildFileOptions(File('build.yaml')) != null) { buildFile = File('build.yaml'); } if (buildFile != null) { if (buildFile.existsSync()) { - final buildContent = buildFile.readAsStringSync(); - final rawMap = loadYaml(buildContent) as Map?; - final builders = rawMap?['targets']?[r'$default']?['builders']; - final optionBuildMap = (builders?['flutter_gen_runner'] ?? - builders?['flutter_gen'])?['options']; - if (optionBuildMap is YamlMap && optionBuildMap.isNotEmpty) { + final optionBuildMap = getBuildFileOptions(buildFile); + if (optionBuildMap != null) { final buildMap = {'flutter_gen': optionBuildMap}; mergedMap = mergeMap([mergedMap, buildMap]); final buildLocaleHint = normalize( From 9150c8f646704ebb82f61de67fa57b3f3a1d573e Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:21:43 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=F0=9F=91=B7=20Improve=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 610ea9400..3a0265c0d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,29 +35,18 @@ jobs: if: startsWith(matrix.os, 'windows') run: echo "%LOCALAPPDATA%\Pub\Cache\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - name: Get dependencies for macos and ubuntu - if: startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu') - run: | - dart pub global activate melos - melos bootstrap - - - name: Get dependencies for Windows - if: startsWith(matrix.os, 'windows') + - name: Get dependencies run: | dart pub global activate melos - # FIXME: CI randomly fail - melos exec -c 1 -- flutter pub get melos bootstrap - name: Run tests for our dart project. if: startsWith(matrix.os, 'ubuntu') - run: | - melos test + run: melos test - name: Run coverage if: startsWith(matrix.os, 'ubuntu') - run: | - melos coverage + run: melos coverage - uses: codecov/codecov-action@v5 with: From 9e714e35e80db5d6df09bb33d166e9ffba3957a6 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:26:42 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=F0=9F=92=9A=20Update=20workflow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a0265c0d..224ce2de0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,9 +40,13 @@ jobs: dart pub global activate melos melos bootstrap - - name: Run tests for our dart project. + - name: Run tests for Dart packages if: startsWith(matrix.os, 'ubuntu') - run: melos test + run: melos test:dart --no-select + + - name: Run tests for Flutter packages + if: startsWith(matrix.os, 'ubuntu') + run: melos test:flutter --no-select - name: Run coverage if: startsWith(matrix.os, 'ubuntu') From 1c5c8c234c1ac7b115aaa48ee2e16e8c7e24e171 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:36:10 +0800 Subject: [PATCH 12/17] =?UTF-8?q?=E2=9C=85=20Fix=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/test/flutter_gen_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/test/flutter_gen_test.dart b/packages/core/test/flutter_gen_test.dart index cbc73d4a4..336efe025 100644 --- a/packages/core/test/flutter_gen_test.dart +++ b/packages/core/test/flutter_gen_test.dart @@ -186,9 +186,9 @@ void main() { expect(File('test_resources/lib/gen/$colors').existsSync(), isFalse); }); - test('With build_output.yaml', () async { + test('With build_assets.yaml', () async { const pubspec = 'test_resources/pubspec_normal.yaml'; - const build = 'test_resources/build_output.yaml'; + const build = 'test_resources/build_assets.yaml'; const assets = 'build_assets.gen.dart'; const colors = 'build_colors.gen.dart'; const fonts = 'build_fonts.gen.dart'; From 95a1c659ae8e265f657c6f87e61cccae17256fc6 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 21:39:29 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E2=9C=85=20Fix=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/command/test/flutter_gen_command_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/command/test/flutter_gen_command_test.dart b/packages/command/test/flutter_gen_command_test.dart index e45a50843..c1dcdf82a 100644 --- a/packages/command/test/flutter_gen_command_test.dart +++ b/packages/command/test/flutter_gen_command_test.dart @@ -60,7 +60,7 @@ void main() { ); expect( await process.stderr.next, - equals('Could not find an option named "wrong".'), + equals('Could not find an option named "--wrong".'), ); expect( await process.stderr.next, From 906ad77c117ac1271ceb707d139f8fd50bd8bc6e Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 22:34:38 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E2=9C=85=20Update=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/command/bin/flutter_gen_command.dart | 9 +++++++-- packages/command/test/flutter_gen_command_test.dart | 2 +- packages/core/lib/generators/assets_generator.dart | 8 +++++--- packages/core/lib/generators/generator_helper.dart | 4 ++-- packages/core/test/flutter_gen_test.dart | 10 ++++++++++ packages/core/test_resources/deprecated_configs.yaml | 11 +++++++++++ 6 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 packages/core/test_resources/deprecated_configs.yaml diff --git a/packages/command/bin/flutter_gen_command.dart b/packages/command/bin/flutter_gen_command.dart index f457bece6..8679b1fcf 100644 --- a/packages/command/bin/flutter_gen_command.dart +++ b/packages/command/bin/flutter_gen_command.dart @@ -3,9 +3,10 @@ import 'dart:io'; import 'package:args/args.dart'; import 'package:flutter_gen_core/flutter_generator.dart'; import 'package:flutter_gen_core/utils/cast.dart'; +import 'package:flutter_gen_core/utils/error.dart'; import 'package:flutter_gen_core/version.gen.dart'; -void main(List args) { +void main(List args) async { final parser = ArgParser(); parser.addOption( 'config', @@ -62,5 +63,9 @@ void main(List args) { } final buildFile = buildPath == null ? null : File(buildPath).absolute; - FlutterGenerator(pubspecFile, buildFile: buildFile).build(); + try { + await FlutterGenerator(pubspecFile, buildFile: buildFile).build(); + } on InvalidSettingsException catch (e) { + stderr.write(e.message); + } } diff --git a/packages/command/test/flutter_gen_command_test.dart b/packages/command/test/flutter_gen_command_test.dart index c1dcdf82a..bfd6e6112 100644 --- a/packages/command/test/flutter_gen_command_test.dart +++ b/packages/command/test/flutter_gen_command_test.dart @@ -79,7 +79,7 @@ void main() { ], ); final errors = (await process.stderr.rest.toList()).join('\n'); - expect(errors, contains(helper.sWarning)); + expect(errors, contains(helper.sDeprecationHeader)); expect(errors, contains('style')); expect(errors, contains('package_parameter_enabled')); await process.shouldExit(0); diff --git a/packages/core/lib/generators/assets_generator.dart b/packages/core/lib/generators/assets_generator.dart index 1e7eea144..578d5e677 100644 --- a/packages/core/lib/generators/assets_generator.dart +++ b/packages/core/lib/generators/assets_generator.dart @@ -75,9 +75,10 @@ Future generateAssets( final deprecatedPackageParam = config.flutterGen.assets.packageParameterEnabled != null; if (deprecatedStyle || deprecatedPackageParam) { - stderr.writeln(sWarning); + final deprecationBuffer = StringBuffer(); + deprecationBuffer.writeln(sDeprecationHeader); if (deprecatedStyle) { - stderr.writeln( + deprecationBuffer.writeln( sBuildDeprecation( 'style', 'asset', @@ -92,7 +93,7 @@ Future generateAssets( ); } if (deprecatedPackageParam) { - stderr.writeln( + deprecationBuffer.writeln( sBuildDeprecation( 'package_parameter_enabled', 'asset', @@ -106,6 +107,7 @@ Future generateAssets( ), ); } + throw InvalidSettingsException(deprecationBuffer.toString()); } final classesBuffer = StringBuffer(); diff --git a/packages/core/lib/generators/generator_helper.dart b/packages/core/lib/generators/generator_helper.dart index 5af4b00eb..b1f4d1274 100644 --- a/packages/core/lib/generators/generator_helper.dart +++ b/packages/core/lib/generators/generator_helper.dart @@ -23,7 +23,7 @@ String import(Import package) { '${package.alias != null ? ' as ${package.alias}' : ''};'; } -const sWarning = ''' +const sDeprecationHeader = ''' ░░░░ @@ -59,7 +59,7 @@ String sBuildDeprecation( List migration, ) { final lines = [ - '⚠️ Warning', + '⚠️ Error', 'The $deprecated option has been moved from `$oldLocation` to `$newLocation`.', 'It should be changed in the `pubspec.yaml`.', url, diff --git a/packages/core/test/flutter_gen_test.dart b/packages/core/test/flutter_gen_test.dart index 336efe025..a940d5434 100644 --- a/packages/core/test/flutter_gen_test.dart +++ b/packages/core/test/flutter_gen_test.dart @@ -1,6 +1,7 @@ import 'dart:io'; import 'package:flutter_gen_core/flutter_generator.dart'; +import 'package:flutter_gen_core/utils/error.dart'; import 'package:test/test.dart'; void main() { @@ -58,6 +59,15 @@ void main() { expect(File(fonts).existsSync(), isFalse); expect(File(colors).existsSync(), isFalse); }); + + test('Deprecated configs throws a InvalidSettingsException', () { + const pubspec = 'test_resources/deprecated_configs.yaml'; + + expect( + () => FlutterGenerator(File(pubspec)).build(), + throwsA(isA()), + ); + }); }); group('Test FlutterGenerator', () { diff --git a/packages/core/test_resources/deprecated_configs.yaml b/packages/core/test_resources/deprecated_configs.yaml new file mode 100644 index 000000000..f478e9465 --- /dev/null +++ b/packages/core/test_resources/deprecated_configs.yaml @@ -0,0 +1,11 @@ +name: deprecated_configs + +flutter: + assets: + - assets/ + +flutter_gen: + assets: + enabled: true + style: snake-case + package_parameter_enabled: true \ No newline at end of file From ac474e08e121418e7de2be2669235b6f9f70bc94 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 22:39:51 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E2=9C=85=20Fix=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/test/assets_gen_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/test/assets_gen_test.dart b/packages/core/test/assets_gen_test.dart index b60915eb0..4712eea50 100644 --- a/packages/core/test/assets_gen_test.dart +++ b/packages/core/test/assets_gen_test.dart @@ -285,7 +285,7 @@ void main() { ), equals(''' ┌─────────────────────────────────────────────────────────────────┐ -| ⚠️ Warning | +| ⚠️ Error | | The style option has been moved from `asset` to `asset.output`. | | It should be changed in the `pubspec.yaml`. | | https://github.com/FlutterGen/flutter_gen/pull/294 | From 4553da17cc06b091887110af3c61577a42fef855 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 22:53:19 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E2=9C=85=20Add=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/test/assets_gen_test.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/core/test/assets_gen_test.dart b/packages/core/test/assets_gen_test.dart index 4712eea50..59fac2b60 100644 --- a/packages/core/test/assets_gen_test.dart +++ b/packages/core/test/assets_gen_test.dart @@ -253,6 +253,20 @@ void main() { await expectedAssetsGen(pubspec, generated, fact, build: build); }, ); + + test('fallback to build.yaml if valid', () async { + const pubspec = 'test_resources/pubspec_assets.yaml'; + const fact = 'test_resources/actual_data/build_assets.gen.dart'; + const generated = 'test_resources/lib/build_gen/assets.gen.dart'; + + final buildFile = File('build.yaml'); + final originalBuildContent = buildFile.readAsStringSync(); + buildFile.writeAsStringSync( + File('test_resources/build_assets.yaml').readAsStringSync(), + ); + await expectedAssetsGen(pubspec, generated, fact); + buildFile.writeAsStringSync(originalBuildContent); + }); }); group('Test generatePackageNameForConfig', () { From f24bdb0b81e5230483d959fac3d24208716fd279 Mon Sep 17 00:00:00 2001 From: Alex Li Date: Sun, 15 Dec 2024 23:01:25 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E2=9C=85=20Fix=20concurrency?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- melos.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/melos.yaml b/melos.yaml index eb578cabc..98650bb4a 100644 --- a/melos.yaml +++ b/melos.yaml @@ -80,7 +80,7 @@ scripts: description: dart & flutter test test:dart: - run: dart test + run: dart test --concurrency=1 exec: concurrency: 1 failFast: true @@ -90,7 +90,7 @@ scripts: description: dart test test:flutter: - run: flutter test + run: flutter test --concurrency=1 exec: concurrency: 1 failFast: true