Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# [1.7.0](https://github.com/Stacked-Org/generator/compare/v1.6.1...v1.7.0) (2025-07-08)
* Update dependencies to latest versions

## [1.6.1](https://github.com/Stacked-Org/generator/compare/v1.6.0...v1.6.1) (2024-07-09)


Expand Down
11 changes: 5 additions & 6 deletions lib/src/generators/forms/field_config.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,20 @@ class TextFieldConfig extends FieldConfig {
final ExecutableElementData? validatorFunction;
final ExecutableElementData? customTextEditingController;
const TextFieldConfig({
required String name,
required super.name,
this.initialValue,
this.validatorFunction,
this.customTextEditingController,
}) : super(name: name);
});
}

class DateFieldConfig extends FieldConfig {
const DateFieldConfig({required String name}) : super(name: name);
const DateFieldConfig({required super.name});
}

class DropdownFieldConfig extends FieldConfig {
final List<DropdownFieldItem> items;
const DropdownFieldConfig({required String name, required this.items})
: super(name: name);
const DropdownFieldConfig({required super.name, required this.items});
}

class DropdownFieldItem {
Expand Down Expand Up @@ -83,5 +82,5 @@ extension ExecutableElementDataExtension on ExecutableElement? {
? '$enclosingElementName.${this?.name}'
: this?.name;
bool get hasEnclosingElementName => enclosingElementName != null;
String? get enclosingElementName => this?.enclosingElement.name;
String? get enclosingElementName => this?.enclosingElement3.name;
}
17 changes: 12 additions & 5 deletions lib/src/generators/logging/logger_class_content.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ class SimpleLogPrinter extends LogPrinter {
this.showOnlyClass,
});

final printer = PrettyPrinter(
levelColors: PrettyPrinter.defaultLevelColors,
levelEmojis: PrettyPrinter.defaultLevelEmojis,
);
@override
List<String> log(LogEvent event) {
var color = PrettyPrinter.levelColors[event.level];
var emoji = PrettyPrinter.levelEmojis[event.level];
var color = printer.levelColors?[event.level];
var emoji = printer.levelEmojis?[event.level];
var methodName = _getMethodName();

var methodNameSection =
Expand All @@ -42,9 +46,12 @@ class SimpleLogPrinter extends LogPrinter {
var output =
'\$emoji \$className\$methodNameSection - \${event.message}\${event.error != null ? '\\nERROR: \${event.error}\\n' : ''}\${printCallStack ? '\\nSTACKTRACE:\\n\$stackLog' : ''}';

if (exludeLogsFromClasses
.any((excludeClass) => className == excludeClass) ||
(showOnlyClass != null && className != showOnlyClass)) return [];
if (exludeLogsFromClasses.any(
(excludeClass) => className == excludeClass,
) ||
(showOnlyClass != null && className != showOnlyClass)) {
return [];
}

final pattern = RegExp('.{1,800}'); // 800 is the size of each chunk
List<String> result = [];
Expand Down
4 changes: 3 additions & 1 deletion lib/src/generators/router/generator/router_generator.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:code_builder/code_builder.dart';
import 'package:dart_style/dart_style.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:stacked_generator/src/generators/base_generator.dart';
import 'package:stacked_generator/src/generators/extensions/routes_extension.dart';
import 'package:stacked_generator/src/generators/router/generator/routes_class/routes_class_builder.dart';
Expand Down Expand Up @@ -62,7 +63,8 @@ class RouterGenerator implements BaseGenerator {
..body.addAll([...parsedClasses, navigationExtensionClassBuilder]),
);

return DartFormatter().format('${library.accept(emitter)}');
return DartFormatter(languageVersion: Version.parse('2.19.0'))
.format('${library.accept(emitter)}');
}

/// The classes are:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:source_gen/source_gen.dart';
import 'package:stacked_shared/stacked_shared.dart';
import 'package:stacked_generator/src/generators/router_common/models/importable_type.dart';
import 'package:stacked_generator/src/generators/router_common/models/route_config.dart';
import 'package:stacked_shared/stacked_shared.dart';

import '../../router_common/models/route_parameter_config.dart';
import 'adaptive_route_config.dart';
Expand Down Expand Up @@ -80,7 +80,7 @@ class RouteConfigFactory {
if (function != null) {
final displayName = function.displayName.replaceFirst(RegExp('^_'), '');
final functionName = function.isStatic
? '${function.enclosingElement.displayName}.$displayName'
? '${function.enclosingElement3.displayName}.$displayName'
: displayName;

customTransitionBuilder = ResolvedType(
Expand Down
2 changes: 1 addition & 1 deletion lib/src/generators/router_2/auto_route_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class StackedRouterGenerator extends Generator {
'.dart',
'.gr.dart',
);
return clazz.library.parts.any(
return clazz.library.units.any(
(e) => e.toString().endsWith(part),
);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:code_builder/code_builder.dart';
import 'package:dart_style/dart_style.dart';
import 'package:pub_semver/pub_semver.dart';
import 'package:stacked_generator/src/generators/router/generator/route_allocator.dart';
import 'package:stacked_generator/src/generators/router_2/router_extension_builder/router_extension_builder.dart';
import 'package:stacked_generator/src/generators/router_common/models/importable_type.dart';
Expand Down Expand Up @@ -115,5 +116,6 @@ String generateLibrary(
]),
);

return DartFormatter().format(library.accept(emitter).toString());
return DartFormatter(languageVersion: Version.parse('2.19.0'))
.format(library.accept(emitter).toString());
}
6 changes: 3 additions & 3 deletions lib/src/generators/router_common/resolvers/type_resolver.dart
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ class TypeResolver {
final displayName = function.displayName.replaceFirst(RegExp('^_'), '');
var functionName = displayName;
Element elementToImport = function;
if (function.enclosingElement is ClassElement) {
functionName = '${function.enclosingElement.displayName}.$displayName';
elementToImport = function.enclosingElement;
if (function.enclosingElement3 is ClassElement) {
functionName = '${function.enclosingElement3.displayName}.$displayName';
elementToImport = function.enclosingElement3;
}
return ResolvedType(
name: functionName,
Expand Down
43 changes: 22 additions & 21 deletions pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
name: stacked_generator
description: Stacked Generator is a package dedicated to reduce the boilerplate required to setup a stacked application
version: 1.6.1
version: 1.7.0
homepage: https://github.com/FilledStacks/stacked/tree/master/packages/stacked_generator

environment:
sdk: ">=2.17.0 <3.0.0"

dependencies:
build: ^2.2.1
path: ^1.8.0
recase: ^4.0.0
build: ^2.5.4
path: ^1.9.1
recase: ^4.1.0
source_gen: ^2.0.0
meta: ^1.10.0
logger: ^1.1.0
stacked_shared: ^1.3.0
meta: ^1.16.0
logger: ^2.6.0
stacked_shared: ^1.4.2
# Removing this will cause issues when publish the package
analyzer: ^6.3.0
dart_style: ^2.3.4
code_builder: ^4.3.0
collection: ^1.16.0
freezed_annotation: ^2.2.0
json_annotation: ^4.8.0
xdg_directories: ^1.0.4
analyzer: ^7.5.5
dart_style: ^3.1.0
code_builder: ^4.10.1
collection: ^1.19.1
freezed_annotation: ^3.1.0
json_annotation: ^4.9.0
xdg_directories: ^1.1.0
pub_semver: ^2.2.0

dev_dependencies:
build_runner: ^2.0.6
test: ^1.20.1
build_test: ^2.1.5
flutter_lints: ^3.0.1
freezed: ^2.3.2
json_serializable: ^6.6.1
mockito: ^5.4.4
build_runner: ^2.5.4
test: ^1.26.2
build_test: ^3.2.1
flutter_lints: ^6.0.0
freezed: ^3.1.0
json_serializable: ^6.9.5
mockito: ^5.4.6
16 changes: 8 additions & 8 deletions test/bottomsheets/bottomsheet_class_generator_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,31 @@ import '../helpers/test_constants/bottomsheets_constants.dart';
void main() {
group('BottomsheetClassGeneratorTest -', () {
group('generate -', () {
test('When empty', () {
test('When empty', () async {
final generator = BottomsheetClassGenerator([]);
expect(generator.generate(), kBottomsheetsEmpty);
expect(await generator.generate(), kBottomsheetsEmpty);
});
test('When change locator name', () {
test('When change locator name', () async {
final generator =
BottomsheetClassGenerator([], locatorName: 'customLocator');
expect(generator.generate(), kBottomsheetsWithCustomNamedLocator);
expect(await generator.generate(), kBottomsheetsWithCustomNamedLocator);
});
test('One bottomsheet', () {
test('One bottomsheet', () async {
final generator = BottomsheetClassGenerator([
const BottomsheetConfig(
import: 'one.dart', bottomsheetClassName: 'BasicBottomsheet')
]);
expect(generator.generate(), kOneBottomsheet);
expect(await generator.generate(), kOneBottomsheet);
});
test('Two bottomsheets', () {
test('Two bottomsheets', () async {
final generator = BottomsheetClassGenerator([
const BottomsheetConfig(
import: 'one.dart', bottomsheetClassName: 'BasicBottomsheet'),
const BottomsheetConfig(
import: 'two.dart', bottomsheetClassName: 'ComplexBottomsheet')
]);

expect(generator.generate(), kTwoBottomsheets);
expect(await generator.generate(), kTwoBottomsheets);
});
});
});
Expand Down
16 changes: 8 additions & 8 deletions test/dialogs/dialog_class_generator_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,30 @@ import '../helpers/test_constants/dialog_constant.dart';
void main() {
group('DialogClassGeneratorTest -', () {
group('generate -', () {
test('When empty', () {
test('When empty', () async {
final generator = DialogClassGenerator([]);
expect(generator.generate(), kDialogsEmpty);
expect(await generator.generate(), kDialogsEmpty);
});
test('When change locator name', () {
test('When change locator name', () async {
final generator =
DialogClassGenerator([], locatorName: 'customLocator');
expect(generator.generate(), kDialogsWithCustomNamedLocator);
expect(await generator.generate(), kDialogsWithCustomNamedLocator);
});
test('One dialog', () {
test('One dialog', () async {
final generator = DialogClassGenerator([
const DialogConfig(import: 'one.dart', dialogClassName: 'BasicDialog')
]);
expect(generator.generate(), kOneDialog);
expect(await generator.generate(), kOneDialog);
});
test('Two dialogs', () {
test('Two dialogs', () async {
final generator = DialogClassGenerator([
const DialogConfig(
import: 'one.dart', dialogClassName: 'BasicDialog'),
const DialogConfig(
import: 'two.dart', dialogClassName: 'ComplexDialog')
]);

expect(generator.generate(), kTwoDialogs);
expect(await generator.generate(), kTwoDialogs);
});
});
});
Expand Down
10 changes: 7 additions & 3 deletions test/helpers/class_extension.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import 'package:code_builder/code_builder.dart';
import 'package:dart_style/dart_style.dart';
import 'package:pub_semver/pub_semver.dart';

extension SpecExtension on Spec {
String get buildLibraryForClass {
final library = Library((b) => b..body.add(this));

final emitter = DartEmitter.scoped();
final result = DartFormatter().format('${library.accept(emitter)}');
final result = DartFormatter(languageVersion: Version.parse('2.19.0'))
.format('${library.accept(emitter)}');
//print(result);
return result;
}
Expand All @@ -17,7 +19,8 @@ extension SpecsExtension on Iterable<Spec> {
final library = Library((b) => b..body.addAll(this));

final emitter = DartEmitter.scoped();
final result = DartFormatter().format('${library.accept(emitter)}');
final result = DartFormatter(languageVersion: Version.parse('2.19.0'))
.format('${library.accept(emitter)}');

return result;
}
Expand All @@ -28,7 +31,8 @@ extension ListExpressionExtension on Iterable<Expression> {
final library = Library((b) => b..body.addAll(this));

final emitter = DartEmitter.scoped();
final result = DartFormatter().format('${library.accept(emitter)}');
final result = DartFormatter(languageVersion: Version.parse('2.19.0'))
.format('${library.accept(emitter)}');

return result;
}
Expand Down
24 changes: 16 additions & 8 deletions test/helpers/test_constants/logger_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,15 @@ class SimpleLogPrinter extends LogPrinter {
this.showOnlyClass,
});


final printer = PrettyPrinter(
levelColors: PrettyPrinter.defaultLevelColors,
levelEmojis: PrettyPrinter.defaultLevelEmojis,
);
@override
List<String> log(LogEvent event) {
var color = PrettyPrinter.levelColors[event.level];
var emoji = PrettyPrinter.levelEmojis[event.level];
var color = printer.levelColors?[event.level];
var emoji = printer.levelEmojis?[event.level];
var methodName = _getMethodName();

var methodNameSection =
Expand All @@ -40,9 +45,12 @@ class SimpleLogPrinter extends LogPrinter {
var output =
'\$emoji \$className\$methodNameSection - \${event.message}\${event.error != null ? '\\nERROR: \${event.error}\\n' : ''}\${printCallStack ? '\\nSTACKTRACE:\\n\$stackLog' : ''}';

if (exludeLogsFromClasses
.any((excludeClass) => className == excludeClass) ||
(showOnlyClass != null && className != showOnlyClass)) return [];
if (exludeLogsFromClasses.any(
(excludeClass) => className == excludeClass,
) ||
(showOnlyClass != null && className != showOnlyClass)) {
return [];
}

final pattern = RegExp('.{1,800}'); // 800 is the size of each chunk
List<String> result = [];
Expand Down Expand Up @@ -315,7 +323,7 @@ Logger ebraLogger(
exludeLogsFromClasses: exludeLogsFromClasses,
),
output: MultiOutput([

ConsoleOutput(),
if(kReleaseMode) outputOne(), if(kReleaseMode) outputTwo(),
]),
Expand Down Expand Up @@ -368,7 +376,7 @@ Logger ebraLogger(
exludeLogsFromClasses: exludeLogsFromClasses,
),
output: MultipleLoggerOutput([

ConsoleOutput(),
if(kReleaseMode) outputOne(), if(kReleaseMode) outputTwo(),
]),
Expand Down Expand Up @@ -409,7 +417,7 @@ Logger getLogger(
output: MultiOutput([
if(!kReleaseMode)
ConsoleOutput(),

]),
);
}
Expand Down