Skip to content

Commit

Permalink
feat(bricks): hydrated_cubit v0.2.0 (#3546)
Browse files Browse the repository at this point in the history
  • Loading branch information
felangel authored Sep 17, 2022
1 parent f4c2c84 commit ff29bc7
Show file tree
Hide file tree
Showing 13 changed files with 114 additions and 28 deletions.
5 changes: 5 additions & 0 deletions bricks/hydrated_cubit/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 0.2.0

- feat: add support for `equatable`
- feat: add support for `freezed`

# 0.1.3

- fix: part and imports
Expand Down
9 changes: 5 additions & 4 deletions bricks/hydrated_cubit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,15 @@ Generate a new HydratedCubit in [Dart][1]. Built for the [bloc state management
## Usage 🚀

```sh
mason make hydrated_cubit --name counter
mason make hydrated_cubit --name counter --style basic
```

## Variables ✨

| Variable | Description | Default | Type |
| -------- | -------------------------- | --------- | -------- |
| `name` | The name of the cubit class | `counter` | `string` |
| Variable | Description | Default | Type |
| -------- | ---------------------------- | ----------------------------------- | -------- |
| `name` | The name of the cubit class | `counter` | `string` |
| `style` | The style of cubit generated | `basic (basic, equatable, freezed)` | `enum` |

## Output 📦

Expand Down
18 changes: 1 addition & 17 deletions bricks/hydrated_cubit/__brick__/{{name.snakeCase()}}_cubit.dart
Original file line number Diff line number Diff line change
@@ -1,17 +1 @@
import 'package:hydrated_bloc/hydrated_bloc.dart';

part '{{name.snakeCase()}}_state.dart';

class {{name.pascalCase()}}Cubit extends HydratedCubit<{{name.pascalCase()}}State> {
{{name.pascalCase()}}Cubit() : super(const {{name.pascalCase()}}State());

@override
Map<String, dynamic> toJson({{name.pascalCase()}}State state) {
// TODO: implement toJson
}

@override
{{name.pascalCase()}}State fromJson(Map<String, dynamic> json) {
// TODO: implement fromJson
}
}
{{#use_freezed}}{{> freezed_cubit }}{{/use_freezed}}{{#use_equatable}}{{> equatable_cubit }}{{/use_equatable}}{{#use_basic}}{{> basic_cubit }}{{/use_basic}}
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
part of '{{name.snakeCase()}}_cubit.dart';

class {{name.pascalCase()}}State {
const {{name.pascalCase()}}State();
}
{{#use_freezed}}{{> freezed_state }}{{/use_freezed}}{{#use_equatable}}{{> equatable_state }}{{/use_equatable}}{{#use_basic}}{{> basic_state }}{{/use_basic}}
17 changes: 17 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ basic_cubit }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import 'package:hydrated_bloc/hydrated_bloc.dart';

part '{{name.snakeCase()}}_state.dart';

class {{name.pascalCase()}}Cubit extends HydratedCubit<{{name.pascalCase()}}State> {
{{name.pascalCase()}}Cubit() : super(const {{name.pascalCase()}}State());

@override
Map<String, dynamic> toJson({{name.pascalCase()}}State state) {
// TODO: implement toJson
}

@override
{{name.pascalCase()}}State fromJson(Map<String, dynamic> json) {
// TODO: implement fromJson
}
}
5 changes: 5 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ basic_state }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
part of '{{name.snakeCase()}}_cubit.dart';

class {{name.pascalCase()}}State {
const {{name.pascalCase()}}State();
}
18 changes: 18 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ equatable_cubit }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import 'package:equatable/equatable.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';

part '{{name.snakeCase()}}_state.dart';

class {{name.pascalCase()}}Cubit extends HydratedCubit<{{name.pascalCase()}}State> {
{{name.pascalCase()}}Cubit() : super(const {{name.pascalCase()}}State());

@override
Map<String, dynamic> toJson({{name.pascalCase()}}State state) {
// TODO: implement toJson
}

@override
{{name.pascalCase()}}State fromJson(Map<String, dynamic> json) {
// TODO: implement fromJson
}
}
8 changes: 8 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ equatable_state }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
part of '{{name.snakeCase()}}_cubit.dart';

class {{name.pascalCase()}}State extends Equatable {
const {{name.pascalCase()}}State();

@override
List<Object> get props => [];
}
19 changes: 19 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ freezed_cubit }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:hydrated_bloc/hydrated_bloc.dart';

part '{{name.snakeCase()}}_state.dart';
part '{{name.snakeCase()}}_cubit.freezed.dart';

class {{name.pascalCase()}}Cubit extends HydratedCubit<{{name.pascalCase()}}State> {
{{name.pascalCase()}}Cubit() : super(const {{name.pascalCase()}}State.initial());

@override
Map<String, dynamic> toJson({{name.pascalCase()}}State state) {
// TODO: implement toJson
}

@override
{{name.pascalCase()}}State fromJson(Map<String, dynamic> json) {
// TODO: implement fromJson
}
}
6 changes: 6 additions & 0 deletions bricks/hydrated_cubit/__brick__/{{~ freezed_state }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
part of '{{name.snakeCase()}}_cubit.dart';

@freezed
class {{name.pascalCase()}}State with _${{name.pascalCase()}}State {
const factory {{name.pascalCase()}}State.initial() = _Initial;
}
13 changes: 11 additions & 2 deletions bricks/hydrated_cubit/brick.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
name: hydrated_cubit
description: Generate a new HydratedCubit in Dart. Built for the bloc state management library.
version: 0.1.3
version: 0.2.0
repository: https://github.com/felangel/bloc/tree/master/bricks/hydrated_cubit

environment:
mason: ">=0.1.0-dev.15 <0.1.0"
mason: ">=0.1.0-dev.32 <0.1.0"

vars:
name:
type: string
description: The name of the cubit class.
default: counter
prompt: Please enter the cubit name.
style:
type: enum
description: The style of cubit generated.
default: basic
prompt: What is the cubit style?
values:
- basic
- equatable
- freezed
11 changes: 11 additions & 0 deletions bricks/hydrated_cubit/hooks/pre_gen.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import 'package:mason/mason.dart';

Future<void> run(HookContext context) async {
final style = context.vars['style'];
context.vars = {
...context.vars,
'use_basic': style == 'basic',
'use_equatable': style == 'equatable',
'use_freezed': style == 'freezed',
};
}
7 changes: 7 additions & 0 deletions bricks/hydrated_cubit/hooks/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: hydrated_cubit_hooks

environment:
sdk: ">=2.12.0 <3.0.0"

dependencies:
mason: ^0.1.0-dev

0 comments on commit ff29bc7

Please sign in to comment.