Skip to content

Commit

Permalink
Merge pull request #13 from joutvhu/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
joutvhu authored Jun 1, 2023
2 parents 3353a7b + 835e1e1 commit 7af6589
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 28 deletions.
13 changes: 2 additions & 11 deletions .github/workflows/publish_pub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,26 +36,17 @@ jobs:
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_dioxide') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: dart pub get

- name: Publish - dry run for dioxide
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_dioxide') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: dart pub publish --dry-run

- name: Publish package for dioxide
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_dioxide') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: dart pub publish -f

- name: Install dependencies for generator
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_generator') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: dart pub get
working-directory: generator

- name: Copy README file to generator
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_generator') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: cp -r ./README.md ./generator/

- name: Publish - dry run for generator
- name: Install dependencies for generator
if: ${{ endsWith(steps.current_release.outputs.tag_name, '_generator') || !contains(steps.current_release.outputs.tag_name, '_') }}
run: dart pub publish --dry-run
run: dart pub get
working-directory: generator

- name: Publish package for generator
Expand Down
3 changes: 1 addition & 2 deletions generator/lib/src/extra.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ void generateExtra(MethodElement m, List<Code> blocks, String localExtraVar) {
v?.toSetValue() ??
v?.toSymbolValue() ??
(v?.toTypeValue() ?? (v != null ? Code(revivedLiteral(v)) : Code('null'))),
)) ??
{});
)));
});

final extraInParam = getAnnotations(m, dioxide.Extra);
Expand Down
29 changes: 18 additions & 11 deletions generator/lib/src/timeout.dart
Original file line number Diff line number Diff line change
Expand Up @@ -41,21 +41,21 @@ Iterable<Parameter> buildTimeoutParameters() {
Field _buildSendTimeoutField() => Field((m) {
m
..name = _sendTimeoutVar
..type = refer("int?")
..type = refer("Duration?")
..modifier = FieldModifier.var$;
});

Field _buildConnectTimeoutField() => Field((m) {
m
..name = _connectTimeoutVar
..type = refer("int?")
..type = refer("Duration?")
..modifier = FieldModifier.var$;
});

Field _buildReceiveTimeoutField() => Field((m) {
m
..name = _receiveTimeoutVar
..type = refer("int?")
..type = refer("Duration?")
..modifier = FieldModifier.var$;
});

Expand All @@ -70,20 +70,27 @@ Iterable<Field> buildTimeoutFields() {
Iterable<Code> buildTimeoutDefaultValue(Element element) {
final value = _getTimeoutValue(element);
return [
if (value[_sendTimeoutVar] != null) Code('$_sendTimeoutVar ??= ${literal(value[_sendTimeoutVar])};'),
if (value[_connectTimeoutVar] != null) Code('$_connectTimeoutVar ??= ${literal(value[_connectTimeoutVar])};'),
if (value[_receiveTimeoutVar] != null) Code('$_receiveTimeoutVar ??= ${literal(value[_receiveTimeoutVar])};'),
if (value[_sendTimeoutVar] != null)
Code('$_sendTimeoutVar ??= const Duration(microseconds: ${literal(value[_sendTimeoutVar])});'),
if (value[_connectTimeoutVar] != null)
Code('$_connectTimeoutVar ??= const Duration(microseconds: ${literal(value[_connectTimeoutVar])});'),
if (value[_receiveTimeoutVar] != null)
Code('$_receiveTimeoutVar ??= const Duration(microseconds: ${literal(value[_receiveTimeoutVar])});'),
];
}

Map<String, Expression> buildTimeoutOptions(MethodElement element) {
final value = _getTimeoutValue(element);
return {
_sendTimeoutVar: value[_sendTimeoutVar] != null ? literal(value[_sendTimeoutVar]) : refer(_sendTimeoutVar),
_connectTimeoutVar:
value[_connectTimeoutVar] != null ? literal(value[_connectTimeoutVar]) : refer(_connectTimeoutVar),
_receiveTimeoutVar:
value[_receiveTimeoutVar] != null ? literal(value[_receiveTimeoutVar]) : refer(_receiveTimeoutVar),
_sendTimeoutVar: value[_sendTimeoutVar] != null
? CodeExpression(Code('const Duration(microseconds: ${literal(value[_sendTimeoutVar])})'))
: refer(_sendTimeoutVar),
_connectTimeoutVar: value[_connectTimeoutVar] != null
? CodeExpression(Code('const Duration(microseconds: ${literal(value[_connectTimeoutVar])})'))
: refer(_connectTimeoutVar),
_receiveTimeoutVar: value[_receiveTimeoutVar] != null
? CodeExpression(Code('const Duration(microseconds: ${literal(value[_receiveTimeoutVar])})'))
: refer(_receiveTimeoutVar),
};
}

Expand Down
3 changes: 2 additions & 1 deletion generator/pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: dioxide_generator
description: dioxide is a dio client generator.
version: 1.0.0
version: 1.0.0+1
homepage: https://github.com/joutvhu/dioxide
repository: https://github.com/joutvhu/dioxide/tree/main/dioxide_generator

Expand All @@ -15,6 +15,7 @@ environment:

scripts:
publish: dart pub publish
publish-dry: dart pub publish --dry-run

dependencies:
dio: ^5.0.0
Expand Down
14 changes: 13 additions & 1 deletion lib/src/dio.dart
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ class RequestTimeout {
final int? sendTimeout;

/// Timeout in milliseconds for opening url.
/// [Dio] will throw the [DioError] with [DioErrorType.connectTimeout] type
/// [Dio] will throw the [DioError] with [DioErrorType.connectionTimeout] type
/// when time out.
final int? connectTimeout;

Expand All @@ -75,6 +75,18 @@ class RequestTimeout {
this.connectTimeout,
this.receiveTimeout,
});

factory RequestTimeout.fromDuration({
Duration? sendTimeout,
Duration? connectTimeout,
Duration? receiveTimeout,
}) {
return RequestTimeout(
sendTimeout: sendTimeout?.inMicroseconds,
connectTimeout: connectTimeout?.inMicroseconds,
receiveTimeout: receiveTimeout?.inMicroseconds,
);
}
}

extension FormDataExtension on FormData {
Expand Down
5 changes: 3 additions & 2 deletions pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
name: dioxide
description: dioxide is a dio client generator.
version: 1.0.0
version: 1.0.0+1
homepage: https://github.com/joutvhu/dioxide
repository: https://github.com/joutvhu/dioxide/tree/main/dioxide

environment:
sdk: '>=2.17.0 <4.0.0'
sdk: '>=2.17.0 <4.0.0'

scripts:
publish: dart pub publish
publish-dry: dart pub publish --dry-run

dependencies:
dio: ^5.0.0
Expand Down

0 comments on commit 7af6589

Please sign in to comment.