Fixed deprecated warnings
This commit is contained in:
parent
41167e01bd
commit
9a5201b6f0
23 changed files with 75 additions and 61 deletions
|
@ -109,7 +109,9 @@ class PollingService extends Service {
|
||||||
@override
|
@override
|
||||||
Future close() async {
|
Future close() async {
|
||||||
_timer.cancel();
|
_timer.cancel();
|
||||||
_subs.forEach((s) => s.cancel());
|
for (var s in _subs) {
|
||||||
|
s.cancel();
|
||||||
|
}
|
||||||
await _onIndexed.close();
|
await _onIndexed.close();
|
||||||
await _onRead.close();
|
await _onRead.close();
|
||||||
await _onCreated.close();
|
await _onCreated.close();
|
||||||
|
@ -124,7 +126,7 @@ class PollingService extends Service {
|
||||||
return inner.index().then((data) {
|
return inner.index().then((data) {
|
||||||
//return asPaginated == true ? data['data'] : data;
|
//return asPaginated == true ? data['data'] : data;
|
||||||
//return asPaginated == true ? data[0] : data;
|
//return asPaginated == true ? data[0] : data;
|
||||||
return data!;
|
return data;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
8
doc/README.md
Normal file
8
doc/README.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Performance Testing
|
||||||
|
|
||||||
|
## WRT
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wrk -t12 -c400 -d30s http://localhost:8080/query?queries=20
|
||||||
|
```
|
||||||
|
This runs a benchmark for 30 seconds, using 12 threads, and keeping 400 HTTP connections open.
|
|
@ -3,7 +3,7 @@ version: 1.0.0
|
||||||
description: Angel3 performance testing tool
|
description: Angel3 performance testing tool
|
||||||
publish_to: none
|
publish_to: none
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.16.0 <3.0.0'
|
sdk: '>=2.17.0 <3.0.0'
|
||||||
published_to: none
|
published_to: none
|
||||||
dependencies:
|
dependencies:
|
||||||
mysql1: ^0.20.0
|
mysql1: ^0.20.0
|
||||||
|
@ -11,4 +11,4 @@ dependencies:
|
||||||
postgres: ^2.4.1
|
postgres: ^2.4.1
|
||||||
postgres_pool: ^2.1.3
|
postgres_pool: ^2.1.3
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
lints: ^1.0.0
|
lints: ^2.0.0
|
|
@ -3,9 +3,9 @@ version: 1.0.0
|
||||||
description: Angel3 performance testing tool
|
description: Angel3 performance testing tool
|
||||||
publish_to: none
|
publish_to: none
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.16.0 <3.0.0'
|
sdk: '>=2.17.0 <3.0.0'
|
||||||
published_to: none
|
published_to: none
|
||||||
dependencies:
|
dependencies:
|
||||||
http: ^0.13.4
|
http: ^0.13.4
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
lints: ^1.0.0
|
lints: ^2.0.0
|
|
@ -4,7 +4,7 @@ import 'package:http/http.dart' as http;
|
||||||
Future<void> fortunes(var message) async {
|
Future<void> fortunes(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/fortunes');
|
var url = Uri.http('localhost:8080', '/fortunes');
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
|
@ -19,7 +19,7 @@ Future<void> fortunes(var message) async {
|
||||||
Future<void> plaintext(var message) async {
|
Future<void> plaintext(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/plaintext');
|
var url = Uri.http('localhost:8080', '/plaintext');
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
if (response.statusCode == 200) {
|
if (response.statusCode == 200) {
|
||||||
print('Execution($message): ${response.body}.');
|
print('Execution($message): ${response.body}.');
|
||||||
|
@ -34,7 +34,7 @@ Future<void> plaintext(var message) async {
|
||||||
Future<void> json(var message) async {
|
Future<void> json(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/json');
|
var url = Uri.http('localhost:8080', '/json');
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
|
@ -49,7 +49,7 @@ Future<void> json(var message) async {
|
||||||
Future<void> dbUpdate(var message) async {
|
Future<void> dbUpdate(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/updates', {'queries': "5"});
|
var url = Uri.http('localhost:8080', '/updates', {'queries': "5"});
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
|
@ -64,7 +64,7 @@ Future<void> dbUpdate(var message) async {
|
||||||
Future<void> dbSingleQuery(var message) async {
|
Future<void> dbSingleQuery(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/db');
|
var url = Uri.http('localhost:8080', '/db');
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
|
@ -79,7 +79,7 @@ Future<void> dbSingleQuery(var message) async {
|
||||||
Future<void> dbMultipleQuery(var message) async {
|
Future<void> dbMultipleQuery(var message) async {
|
||||||
var stopwatch = Stopwatch()..start();
|
var stopwatch = Stopwatch()..start();
|
||||||
|
|
||||||
var url = Uri.http('localhost:3000', '/query', {'queries': "5"});
|
var url = Uri.http('localhost:8080', '/query', {'queries': "5"});
|
||||||
var response = await http.get(url);
|
var response = await http.get(url);
|
||||||
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
print('Execution($message) Time: ${stopwatch.elapsed.inMilliseconds}ms');
|
||||||
stopwatch.stop();
|
stopwatch.stop();
|
||||||
|
@ -92,10 +92,10 @@ Future<void> dbMultipleQuery(var message) async {
|
||||||
}
|
}
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
var concurrency = 6000;
|
var concurrency = 2000;
|
||||||
|
|
||||||
for (var i = 0; i < concurrency; i++) {
|
for (var i = 0; i < concurrency; i++) {
|
||||||
Isolate.spawn(plaintext, 'Instance_$i');
|
Isolate.spawn(dbSingleQuery, 'Instance_$i');
|
||||||
}
|
}
|
||||||
|
|
||||||
await Future.delayed(const Duration(seconds: 10));
|
await Future.delayed(const Duration(seconds: 10));
|
||||||
|
|
|
@ -3,9 +3,9 @@ version: 1.0.0
|
||||||
description: Angel3 performance testing tool
|
description: Angel3 performance testing tool
|
||||||
publish_to: none
|
publish_to: none
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.16.0 <3.0.0'
|
sdk: '>=2.17.0 <3.0.0'
|
||||||
published_to: none
|
published_to: none
|
||||||
dependencies:
|
dependencies:
|
||||||
http: ^0.13.4
|
http: ^0.13.4
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
lints: ^1.0.0
|
lints: ^2.0.0
|
|
@ -1,19 +1,19 @@
|
||||||
### JSON Test
|
### JSON Test
|
||||||
GET http://localhost:3000/json HTTP/1.1
|
GET http://localhost:8080/json HTTP/1.1
|
||||||
|
|
||||||
### Plaintext Test
|
### Plaintext Test
|
||||||
GET http://localhost:3000/plaintext HTTP/1.1
|
GET http://localhost:8080/plaintext HTTP/1.1
|
||||||
|
|
||||||
### Fortunes Test
|
### Fortunes Test
|
||||||
GET http://localhost:3000/fortunes HTTP/1.1
|
GET http://localhost:8080/fortunes HTTP/1.1
|
||||||
|
|
||||||
### Db Test
|
### Db Test
|
||||||
GET http://localhost:3000/db HTTP/1.1
|
GET http://localhost:8080/db HTTP/1.1
|
||||||
|
|
||||||
### Query test
|
### Query test
|
||||||
GET http://localhost:3000/query?queries=20 HTTP/1.1
|
GET http://localhost:8080/query?queries=20 HTTP/1.1
|
||||||
|
|
||||||
### Update Test
|
### Update Test
|
||||||
GET http://localhost:3000/updates?queries=20 HTTP/1.1
|
GET http://localhost:8080/updates?queries=20 HTTP/1.1
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## 7.0.1
|
||||||
|
|
||||||
|
* Fixed `BytesBuilder` warnings
|
||||||
|
|
||||||
## 7.0.0
|
## 7.0.0
|
||||||
|
|
||||||
* Require Dart >= 2.17
|
* Require Dart >= 2.17
|
||||||
|
|
|
@ -19,9 +19,10 @@ This package is the core package of [Angel3](https://github.com/dukefirehawk/ang
|
||||||
1. Download and install [Dart](https://dart.dev/get-dart)
|
1. Download and install [Dart](https://dart.dev/get-dart)
|
||||||
|
|
||||||
2. Clone one of the following starter projects:
|
2. Clone one of the following starter projects:
|
||||||
* [Angel3 Basic Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-basic)
|
* [Angel3 Basic Template](https://github.com/dukefirehawk/boilerplates/tree/v7/angel3-basic)
|
||||||
* [Angel3 ORM Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-orm)
|
* [Angel3 ORM Template](https://github.com/dukefirehawk/boilerplates/tree/v7/angel3-orm)
|
||||||
* [Angel3 Graphql Template](https://github.com/dukefirehawk/boilerplates/tree/angel3-graphql)
|
* [Angel3 ORM MySQL Template](https://github.com/dukefirehawk/boilerplates/tree/v7/angel3-orm-mysql)
|
||||||
|
* [Angel3 Graphql Template](https://github.com/dukefirehawk/boilerplates/tree/v7/angel3-graphql)
|
||||||
|
|
||||||
3. Run the project in development mode (*hot-reloaded* is enabled on file changes).
|
3. Run the project in development mode (*hot-reloaded* is enabled on file changes).
|
||||||
|
|
||||||
|
@ -70,3 +71,7 @@ This package is the core package of [Angel3](https://github.com/dukefirehawk/ang
|
||||||
### Migrating from Angel to Angel3
|
### Migrating from Angel to Angel3
|
||||||
|
|
||||||
Check out [Migrating to Angel3](https://angel3-docs.dukefirehawk.com/migration/angel-2.x.x-to-angel3/migration-guide-3)
|
Check out [Migrating to Angel3](https://angel3-docs.dukefirehawk.com/migration/angel-2.x.x-to-angel3/migration-guide-3)
|
||||||
|
|
||||||
|
## Donation & Support
|
||||||
|
|
||||||
|
If you like this project and interested in supporting its development, you can make a donation via [paypal](https://paypal.me/dukefirehawk?country.x=MY&locale.x=en_US) service.
|
||||||
|
|
|
@ -292,7 +292,7 @@ abstract class Driver<
|
||||||
ResponseContext res,
|
ResponseContext res,
|
||||||
{bool ignoreFinalizers = false}) {
|
{bool ignoreFinalizers = false}) {
|
||||||
//app.logger.fine("Calling SendResponse");
|
//app.logger.fine("Calling SendResponse");
|
||||||
Future<void> _cleanup(_) {
|
Future<void> cleanup(_) {
|
||||||
if (!app.environment.isProduction && req.container!.has<Stopwatch>()) {
|
if (!app.environment.isProduction && req.container!.has<Stopwatch>()) {
|
||||||
var sw = req.container!.make<Stopwatch>();
|
var sw = req.container!.make<Stopwatch>();
|
||||||
app.logger.fine(
|
app.logger.fine(
|
||||||
|
@ -310,7 +310,7 @@ abstract class Driver<
|
||||||
|
|
||||||
if (!res.isBuffered) {
|
if (!res.isBuffered) {
|
||||||
//if (res.isOpen) {
|
//if (res.isOpen) {
|
||||||
return res.close().then(_cleanup);
|
return res.close().then(cleanup);
|
||||||
//}
|
//}
|
||||||
//return Future.value();
|
//return Future.value();
|
||||||
}
|
}
|
||||||
|
@ -372,7 +372,7 @@ abstract class Driver<
|
||||||
setStatusCode(response, res.statusCode);
|
setStatusCode(response, res.statusCode);
|
||||||
addCookies(response, res.cookies);
|
addCookies(response, res.cookies);
|
||||||
writeToResponse(response, outputBuffer);
|
writeToResponse(response, outputBuffer);
|
||||||
return closeResponse(response).then(_cleanup);
|
return closeResponse(response).then(cleanup);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ class HostnameRouter {
|
||||||
HostnameRouter(
|
HostnameRouter(
|
||||||
{Map<Pattern, Angel> apps = const {},
|
{Map<Pattern, Angel> apps = const {},
|
||||||
Map<Pattern, FutureOr<Angel> Function()> creators = const {}}) {
|
Map<Pattern, FutureOr<Angel> Function()> creators = const {}}) {
|
||||||
Map<Pattern, V> _parseMap<V>(Map<Pattern, V> map) {
|
Map<Pattern, V> parseMap<V>(Map<Pattern, V> map) {
|
||||||
return map.map((p, c) {
|
return map.map((p, c) {
|
||||||
Pattern pp;
|
Pattern pp;
|
||||||
|
|
||||||
|
@ -45,8 +45,8 @@ class HostnameRouter {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
apps = _parseMap(apps);
|
apps = parseMap(apps);
|
||||||
creators = _parseMap(creators);
|
creators = parseMap(creators);
|
||||||
var patterns = apps.keys.followedBy(creators.keys).toSet().toList();
|
var patterns = apps.keys.followedBy(creators.keys).toSet().toList();
|
||||||
_apps.addAll(apps);
|
_apps.addAll(apps);
|
||||||
_creators.addAll(creators);
|
_creators.addAll(creators);
|
||||||
|
|
|
@ -2,14 +2,9 @@ library angel_framework.http.request_context;
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
import 'dart:io'
|
import 'dart:io'
|
||||||
show
|
show Cookie, HeaderValue, HttpHeaders, HttpSession, InternetAddress;
|
||||||
BytesBuilder,
|
|
||||||
Cookie,
|
|
||||||
HeaderValue,
|
|
||||||
HttpHeaders,
|
|
||||||
HttpSession,
|
|
||||||
InternetAddress;
|
|
||||||
|
|
||||||
import 'package:angel3_container/angel3_container.dart';
|
import 'package:angel3_container/angel3_container.dart';
|
||||||
import 'package:http_parser/http_parser.dart';
|
import 'package:http_parser/http_parser.dart';
|
||||||
|
|
|
@ -233,10 +233,10 @@ abstract class ResponseContext<RawResponse>
|
||||||
/// Redirects to the given named [Route].
|
/// Redirects to the given named [Route].
|
||||||
Future<void> redirectTo(String name, [Map? params, int? code]) async {
|
Future<void> redirectTo(String name, [Map? params, int? code]) async {
|
||||||
if (!isOpen) throw closed();
|
if (!isOpen) throw closed();
|
||||||
Route? _findRoute(Router r) {
|
Route? findRoute(Router r) {
|
||||||
for (var route in r.routes) {
|
for (var route in r.routes) {
|
||||||
if (route is SymlinkRoute) {
|
if (route is SymlinkRoute) {
|
||||||
final m = _findRoute(route.router);
|
final m = findRoute(route.router);
|
||||||
|
|
||||||
if (m != null) return m;
|
if (m != null) return m;
|
||||||
} else if (route.name == name) {
|
} else if (route.name == name) {
|
||||||
|
@ -247,7 +247,7 @@ abstract class ResponseContext<RawResponse>
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var matched = _findRoute(app!);
|
var matched = findRoute(app!);
|
||||||
|
|
||||||
if (matched != null) {
|
if (matched != null) {
|
||||||
await redirect(
|
await redirect(
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io' hide BytesBuilder;
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
import 'package:http_parser/http_parser.dart';
|
import 'package:http_parser/http_parser.dart';
|
||||||
|
|
||||||
import '../core/core.dart';
|
import '../core/core.dart';
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io' hide BytesBuilder;
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
import 'package:angel3_framework/angel3_framework.dart' hide Header;
|
import 'package:angel3_framework/angel3_framework.dart' hide Header;
|
||||||
import 'package:http2/transport.dart';
|
import 'package:http2/transport.dart';
|
||||||
import 'http2_request_context.dart';
|
import 'http2_request_context.dart';
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name: angel3_framework
|
name: angel3_framework
|
||||||
version: 7.0.0
|
version: 7.0.1
|
||||||
description: A high-powered HTTP server extensible framework with dependency injection, routing and much more.
|
description: A high-powered HTTP server extensible framework with dependency injection, routing and much more.
|
||||||
homepage: https://angel3-framework.web.app/
|
homepage: https://angel3-framework.web.app/
|
||||||
repository: https://github.com/dukefirehawk/angel/tree/master/packages/framework
|
repository: https://github.com/dukefirehawk/angel/tree/master/packages/framework
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io' hide BytesBuilder;
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
|
|
||||||
import 'package:angel3_container/mirrors.dart';
|
import 'package:angel3_container/mirrors.dart';
|
||||||
import 'package:angel3_framework/angel3_framework.dart';
|
import 'package:angel3_framework/angel3_framework.dart';
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io' hide BytesBuilder;
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
import 'package:angel3_container/mirrors.dart';
|
import 'package:angel3_container/mirrors.dart';
|
||||||
import 'package:angel3_framework/angel3_framework.dart' hide Header;
|
import 'package:angel3_framework/angel3_framework.dart' hide Header;
|
||||||
import 'package:angel3_framework/http2.dart';
|
import 'package:angel3_framework/http2.dart';
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'dart:io';
|
import 'dart:io' hide BytesBuilder;
|
||||||
|
import 'dart:typed_data' show BytesBuilder;
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
import 'package:http2/transport.dart';
|
import 'package:http2/transport.dart';
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ void main() {
|
||||||
|
|
||||||
tearDown(() => http.close());
|
tearDown(() => http.close());
|
||||||
|
|
||||||
void _expectHelloBye(String path) async {
|
void expectHelloBye(String path) async {
|
||||||
var rq = MockHttpRequest('GET', Uri.parse(path));
|
var rq = MockHttpRequest('GET', Uri.parse(path));
|
||||||
await (rq.close());
|
await (rq.close());
|
||||||
await http.handleRequest(rq);
|
await http.handleRequest(rq);
|
||||||
|
@ -84,9 +84,9 @@ void main() {
|
||||||
expect(body, 'Hello, world!bye');
|
expect(body, 'Hello, world!bye');
|
||||||
}
|
}
|
||||||
|
|
||||||
test('write after addStream', () => _expectHelloBye('/write'));
|
test('write after addStream', () => expectHelloBye('/write'));
|
||||||
|
|
||||||
test('multiple addStream', () => _expectHelloBye('/multiple'));
|
test('multiple addStream', () => expectHelloBye('/multiple'));
|
||||||
|
|
||||||
test('cannot write after close', () async {
|
test('cannot write after close', () async {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -7,8 +7,7 @@
|
||||||
|
|
||||||
![Screenshot of terminal](screenshots/angel3-screenshot.png)
|
![Screenshot of terminal](screenshots/angel3-screenshot.png)
|
||||||
|
|
||||||
Supports *hot reloading* of Angel3 servers on file changes. This is faster and more reliable than merely reactively restarting a `Process`.
|
Supports *hot reloading* of Angel3 servers on file changes. This is faster and more reliable than merely reactively restarting a `Process`. This package only works with the [Angel3 framework](https://pub.dev/packages/angel3_framework).
|
||||||
This package only works with the [Angel3 framework](https://pub.dev/packages/angel3_framework).
|
|
||||||
|
|
||||||
**Not recommended to use in production, unless you are specifically intending for a "hot code push" in production..**
|
**Not recommended to use in production, unless you are specifically intending for a "hot code push" in production..**
|
||||||
|
|
||||||
|
@ -18,8 +17,8 @@ In your `pubspec.yaml`:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
dependencies:
|
dependencies:
|
||||||
angel3_framework: ^6.0.0
|
angel3_framework: ^7.0.0
|
||||||
angel3_hot: ^6.0.0
|
angel3_hot: ^7.0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
|
@ -95,9 +95,6 @@ class MySqlExecutor extends QueryExecutor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//var params = substitutionValues.values.toList();
|
|
||||||
//var params = [];
|
|
||||||
|
|
||||||
//logger.warning('Query: $query');
|
//logger.warning('Query: $query');
|
||||||
//logger.warning('Values: $substitutionValues');
|
//logger.warning('Values: $substitutionValues');
|
||||||
//logger.warning('Returning Query: $returningQuery');
|
//logger.warning('Returning Query: $returningQuery');
|
||||||
|
|
|
@ -90,7 +90,7 @@ class HasCarQuery extends Query<HasCar, HasCarQueryWhere> {
|
||||||
type: fields.contains('type')
|
type: fields.contains('type')
|
||||||
? row[3] == null
|
? row[3] == null
|
||||||
? null
|
? null
|
||||||
: CarType?.values[(row[3] as int)]
|
: CarType.values[(row[3] as int)]
|
||||||
: null);
|
: null);
|
||||||
return Optional.of(model);
|
return Optional.of(model);
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,7 @@ class HasCarQueryValues extends MapQueryValues {
|
||||||
|
|
||||||
set updatedAt(DateTime? value) => values['updated_at'] = value;
|
set updatedAt(DateTime? value) => values['updated_at'] = value;
|
||||||
CarType? get type {
|
CarType? get type {
|
||||||
return CarType?.values[(values['type'] as int)];
|
return CarType.values[(values['type'] as int)];
|
||||||
}
|
}
|
||||||
|
|
||||||
set type(CarType? value) => values['type'] = value?.index;
|
set type(CarType? value) => values['type'] = value?.index;
|
||||||
|
@ -259,7 +259,7 @@ class HasCarSerializer extends Codec<HasCar, Map> {
|
||||||
type: map['type'] is CarType?
|
type: map['type'] is CarType?
|
||||||
? (map['type'] as CarType?) ?? CarType.sedan
|
? (map['type'] as CarType?) ?? CarType.sedan
|
||||||
: (map['type'] is int
|
: (map['type'] is int
|
||||||
? CarType?.values[map['type'] as int]
|
? CarType.values[map['type'] as int]
|
||||||
: CarType.sedan));
|
: CarType.sedan));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue