Skip to content

Commit

Permalink
Merge pull request #16 from RicardoRB/0.7.0
Browse files Browse the repository at this point in the history
0.7.0
  • Loading branch information
RicardoRB committed Jun 20, 2024
2 parents b9ac2e9 + 162593f commit adaea96
Show file tree
Hide file tree
Showing 338 changed files with 8,422 additions and 4,298 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ $ dart create -t console your_project_name

```yaml
dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0

dev_dependencies:
build_runner: ^2.2.0
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
```
Expand Down
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ $ dart create -t console your_project_name

```yaml
dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0

dev_dependencies:
build_runner: ^2.2.0
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
```
Expand Down
1 change: 1 addition & 0 deletions docs/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- [Middlewares](middleware.md)
- [Interceptors](interceptor.md)
- [Exceptions](exceptions.md)
- [Schedulers](schedulers.md)
- Flutter
- [Dartness with Flutter](flutter.md)

4 changes: 2 additions & 2 deletions docs/first_steps.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ $ dart create -t console your_project_name

```yaml
dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0

dev_dependencies:
build_runner: ^2.2.0
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
```
### 2. Create the file in "bin/app.dart" or whatever file that you consider that you root application is.
Expand Down
4 changes: 2 additions & 2 deletions docs/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ $ dart create -t console your_project_name

```yaml
dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0
dev_dependencies:
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
```
### 2.Create the file in "src/app.dart"
Expand Down
83 changes: 83 additions & 0 deletions docs/schedulers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Schedulers

Schedulers enables you to set arbitrary code (methods/functions) to run at a specific date and time, at regular intervals, or once after a certain duration. In the Linux environment, this is typically managed by packages such as cron at the operating system level. For Node.js applications, various packages offer cron-like functionality. Dartness offers the `@Scheduler` annotation, which works with the cron package https://pub.dev/packages/cron. This chapter will discuss this scheduling in detail.

## Declarative cron jobs

A cron job automatically schedules an arbitrary function (method call) to run. Cron jobs can be configured to:

1. Run once at a specified date and time.
2. Run on a recurring basis, at specified intervals (for example, once per hour, once per week, once every 5 minutes).

To declare a cron job, use the @Cron() decorator before the method definition containing the code to be executed, as shown below:

```dart
import 'package:dartness_server/schedule.dart';
part 'example_scheduler.g.dart';
@Scheduler()
class ExampleScheduler {
@Scheduled(cron: "* * * * *")
void example() {
print("${DateTime.now()} Hello world");
}
}
```

In this example, the method `example()` will be called every second. As you can see, the class is annotated with `@Scheduler` to indicate that the class contains scheduler tasks and every method that needs to be scheduled is annotated with `@Scheduled` accepting as a param a cron.

Now that we have a service class to retrieve cities, let's use it inside the `CityController`:

```dart
@Controller('cities')
class CityController {
final CityService _cityService;
CityController(this._cityService);
@Post()
void create(@Body() City city) {
_cityService.create(city);
}
@Get()
List<City> findAll() {
return _cityService.findAll();
}
}
```

The `CityService` is injected through the class constructor.

# Provider registration

Now that we have defined a provider (`CityService`), and we have a consumer of that service (`CityController`), we
need to
register the service with Dartness so that it can perform the injection. We do this by editing our module file (
app.dart) and adding the service to the `providers` attribute of the `@Application()` annotation using
the `ModuleMetadata` class in order to structure the metadata and the `ProviderMetadata` class to structure our
provider.

```dart
@Application(
module: Module(
metadata: ModuleMetadata(
controllers: [
ProviderMetadata(
classType: CityController,
),
],
providers: [
ProviderMetadata(
classType: CityService,
),
],
),
),
)
class App {}
```

Dartness will now be able to resolve the dependencies of the `CityController` class.

42 changes: 42 additions & 0 deletions examples/dartness_flutter_melos/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
// Use IntelliSense para saber los atributos posibles.
// Mantenga el puntero para ver las descripciones de los existentes atributos.
// Para más información, visite: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "dartness_flutter_melos",
"request": "launch",
"type": "dart"
},
{
"name": "my_app",
"cwd": "apps\\my_app",
"request": "launch",
"program": "lib/main.dart",
"flutterMode": "debug",
"type": "dart"
},
{
"name": "my_app (profile mode)",
"cwd": "apps\\my_app",
"request": "launch",
"type": "dart",
"flutterMode": "profile"
},
{
"name": "my_app (release mode)",
"cwd": "apps\\my_app",
"request": "launch",
"type": "dart",
"flutterMode": "release"
},
{
"name": "my_server",
"cwd": "servers\\my_server",
"request": "launch",
"program": "bin\\my_server.dart",
"type": "dart"
}
]
}
2 changes: 1 addition & 1 deletion examples/dartness_flutter_melos/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ environment:
sdk: ">=3.0.0 <4.0.0"

dependencies:
melos: ^3.2.0
melos: ^6.1.0
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ environment:
sdk: ">=3.0.0 <4.0.0"

dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0
dio: ^5.3.3
my_common:
path: ../../commons
Expand All @@ -18,4 +18,4 @@ dev_dependencies:
lints: ^3.0.0
test: ^1.24.9
build_runner: ^2.4.6
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
4 changes: 4 additions & 0 deletions examples/dartness_simple/lib/src/app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import 'package:dartness_server/dartness.dart';
import 'package:dartness_server/modules.dart';
import 'package:dartness_server/server.dart';
import 'package:dio/dio.dart';
import 'package:example/src/schedulers/example_scheduler.dart';

import 'controllers/city_controller.dart';
import 'controllers/todos_controller.dart';
Expand All @@ -28,6 +29,9 @@ Dio createDio() => Dio();
classType: Dio,
useFactory: createDio,
),
ProviderMetadata(
classType: ExampleScheduler,
)
],
imports: [
userModule,
Expand Down
2 changes: 2 additions & 0 deletions examples/dartness_simple/lib/src/app.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import 'package:dartness_server/exception.dart';
import 'package:example/src/error_handlers/not_found_exception.dart';

part 'example_error_handler.g.dart';

Expand Down
11 changes: 11 additions & 0 deletions examples/dartness_simple/lib/src/schedulers/example_scheduler.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import 'package:dartness_server/schedule.dart';

part 'example_scheduler.g.dart';

@Scheduler()
class ExampleScheduler {
@Scheduled(cron: "* * * * *")
void example() {
print("${DateTime.now()} Hello world");
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions examples/dartness_simple/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ environment:
sdk: ">=3.0.0 <4.0.0"

dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0
dio: ^5.3.3

dev_dependencies:
build_runner: ^2.4.6
dartness_generator: ^0.6.0
lints: ^3.0.0
dartness_generator: ^0.7.2
lints: ^4.0.0
test: ^1.24.9
1 change: 1 addition & 0 deletions melos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ packages:
scripts:
get: melos exec --no-private -- dart pub get .
analyze: melos exec --no-private -- dart analyze
upgrade: melos exec --no-private -- dart pub upgrade --major-versions

format: melos exec --no-private -- dart format .
format:check: dart format --set-exit-if-changed .
Expand Down
15 changes: 14 additions & 1 deletion packages/dartness_generator/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,17 @@

## 0.6.1

- Updated dartness_server version
- Updated dartness_server version

## 0.7.0

- Added schedulers

## 0.7.1

- Fixed Dartness server version package


## 0.7.1

- Fixed generating without nulls type
4 changes: 2 additions & 2 deletions packages/dartness_generator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ dartness_generator is used with dartness_server in order to provide the code gen

```yaml
dependencies:
dartness_server: ^0.6.0
dartness_server: ^0.7.0

dev_dependencies:
build_runner: ^2.2.0
dartness_generator: ^0.6.0
dartness_generator: ^0.7.2
```
2. Add the corresponding `part '.g.dart'` to your classes, otherwise the new code won't be generated, you can find an
Expand Down
10 changes: 9 additions & 1 deletion packages/dartness_generator/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,18 @@ builders:
build_to: cache
applies_builders: [ "source_gen|combining_builder" ]
application:
target: ":error_handler_generator"
target: ":application_generator"
import: "package:dartness_generator/builder.dart"
builder_factories: [ "application" ]
build_extensions: { ".dart": [ ".g.part" ] }
auto_apply: dependents
build_to: cache
applies_builders: [ "source_gen|combining_builder" ]
scheduler:
target: ":scheduler_generator"
import: "package:dartness_generator/builder.dart"
builder_factories: [ "scheduler" ]
build_extensions: { ".dart": [ ".g.part" ] }
auto_apply: dependents
build_to: cache
applies_builders: [ "source_gen|combining_builder" ]
11 changes: 5 additions & 6 deletions packages/dartness_generator/doc/api/__404error.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, user-scalable=no">
<meta name="generator" content="made with love by dartdoc 7.0.1-wip">
<meta name="description" content="dartness_generator API docs, for the Dart programming language.">
<title>dartness_generator - Dart API docs</title>



<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,300;0,400;0,500;0,700;1,400&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@48,400,0,0" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet">

<link rel="stylesheet" href="static-assets/github.css?v1">
<link rel="stylesheet" href="static-assets/styles.css?v1">
Expand All @@ -35,14 +34,14 @@
<form class="search navbar-right" role="search">
<input type="text" id="search-box" autocomplete="off" disabled class="form-control typeahead" placeholder="Loading search...">
</form>
<div class="toggle" id="theme-button">
<div class="toggle" id="theme-button" title="Toggle brightness">
<label for="theme">
<input type="checkbox" id="theme" value="light-theme">
<span id="dark-theme-button" class="material-symbols-outlined">
brightness_4
dark_mode
</span>
<span id="light-theme-button" class="material-symbols-outlined">
brightness_5
light_mode
</span>
</label>
</div>
Expand Down Expand Up @@ -94,7 +93,7 @@ <h5><span class="package-name">dartness_generator</span> <span class="package-ki
<footer>
<span class="no-break">
dartness_generator
0.6.0
0.7.2
</span>


Expand Down
Loading

0 comments on commit adaea96

Please sign in to comment.