* [dart-dio] Improve form param handling, respect required flag
* simplify template
* respect required flag (only null check when not rquired)
* minor formatting
* Add additional nullable check
* only generate actually used serializers (anything used in body or response)
* generate previously missing serializers for collection types
* improve formatting
* [dart-dio] Enable strong-mode and strict types
This will make it easier to eventually transition to NNBD. Also fix some formatting things.
* [dart-dio] Add implicit-casts: false to analysis options
* [dart-dio] Add dartanalyzer to integration tests
* raise minimum Dart version to 2.6 (to support spread collection)
* add header to all files for language version
* fix some missing imports that can be fixed (some remain due to missing inheritance support)
* [dart-dio] Generate default value builders
* return `null` when there is no default value instead of `"null"`
* use built_value's `_initializeBuilder` to set default values
* [dart-dio] Fix default value formatting in model doc
* [dart][dart-dio] Prevent name clashes with existing dart types
Can not use dart import aliases for now as this is not supported by built_value. This means we need to add potentially clashing names/classes to an `additionalReservedWords` exclusion list. Starting with a basic list of some http/io classes.
Correctly use `importMapping` and `defaultIncludes` this time around. Improve reserved word checking.
This now successfully generates `ModelList`, `ModelFile` and `ModelClient` models which previously were not generated at all or were wrong types.
* Address review comment
* Update generator docs
* Make header params with dynamic types
Otherwise this will generate code which is not compile-able. Like this:
```dart
Future<Response<List<StockItemProjectionDirect>>>getAllStockItems(Store storeId,{ int xXChunkNumber,int xXChunkSize,StockItemRequestFilterDto stockItemRequestFilterDto,CancelToken cancelToken, Map<String, String> headers, ProgressCallback onSendProgress, ProgressCallback onReceiveProgress,}) async {
String _path = "/api/store/{storeId}/stock".replaceAll("{" r'storeId' "}", storeId.toString());
Map<String, dynamic> queryParams = {};
Map<String, String> headerParams = Map.from(headers ?? {});
dynamic bodyData;
headerParams[r'XX-Chunk-Number'] = xXChunkNumber;
headerParams[r'XX-Chunk-Size'] = xXChunkSize;
```
See how the func recieves int argument which then assignes into a string... last 2 lines
* FIX: Dynamic header and sync with upstream
* DART-DIO new samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* always add trailing commas in arrays and break each line
* make variables final
* improve API formatting (mainly leading spaces)
* remove empty lines and whitespaces
* fix formatting of datatype and description and docs
* consistently use single quotation marks (dart already does this)
* correctly generate enums from `mostInnerItems`
* use `datatypeWithEnum` which should always be he correct type
* dart generators prefix inner enums with the classname of the containing class, ensure datatypeWithEnum always matches
* only use `FormData.fromMap()` for multipart content, `FormData` does not work with `x-www-form-urlencoded`
* use a basic map for `x-www-form-urlencoded` content
* fix formatting
* [dart] Always use the correct enum data type
* use raw strings for enum string values
* [dart-dio] Use raw strings for built_value enums
`@BuiltValueEnumConst` does some wierd string handling in the generated code `r'\$'` becomes `'$'`. This is different compared to the wireName in `@BuiltValueField`
* [dart] Properly escape param/var names that clash with Dart types
* [dart] Add tests for var/enumVar names
* note: public and private are no keywords in Dart
* some tests are still wrong, some are commented out
* Fix typo
* [dart] Improve variable name escaping
* add more tests
* [dart] Fix operationId naming
* [dart] Fix upper case var name with leading underscore
* [dart] Correctly support model prefix/suffix
* [dart] Support spaces in property names
* Call super for empty operationId
* [dart] Fix and improve enumVar naming/generation
* use same handling for all 3 generators
* allow `updateEnumVarsWithExtensions` to have access to the data type
* improve `x-enum-values` handling and add supprt for other enum vendor extensions
* remove duplicate and outdated tests from `DartDioModelTest`
* add more tests to `DartModelTest`
* no longer force lowercase enums for plain dart generator (breaking)
* this change also removes the trailing underscore from plain dart generator (breaking)
* [dart-dio] Fix wrong escaped serializer names
* [dart-dio] Prevent enum name collisions in inlined enums
Prefix the private built_value instances with the enum class name. Prevents clashes when multiple inline enums contain the same value - for example `EnumTest`. No breaking changes here as all the changed fields/references are private and automatically re-generated with built_value.
* [dart] Configure and use import mapping
This prevents models from being generated which would clash with exisiting dart types, e.g. List.
* [dart] Fix decimal format not supported
* [dart-dio] Remove redundant modelToIgnore & ignore dart:core import
* modelToIgnore is now handled via importMappings the same way other generators do this
* choose not to import dart:core as this is available by default
* [dart-dio] EnumClass is a reserved word in built_value
* Review changes
* Fix regenerate docs
* [dart] Cleanup and regnerate old/wrong tests and docs
* docs path seems to be doc now in all dart generators
* generated tests are very old and use wrong classes
* [dart-dio] Improve formatting
* [dart][dart-dio] Restructure tests to same layout
* remove duplicate/old openapi sample for which there is no generation config
* generate to `petstore_client_lib` for both generators
* run generated tests as integration tests for dart2 even if empty - this makes it easier to find compile errors
* [dart] Improve gitignore handling for Dart generators
* globally ignore all dart related files that should not be commited
* remove old ignores that are no longer valid
* [dart][dart-dio] Add OAS3 generation and integration tests
Dart2 doesn't compile, needs fixes.
* [dart] Do not attempt to deserialize binary content from JSON fields
Not sure if that case is ever relevant but for now there doesn't seem to be a better option.
* [dart] Fix integration tests for OAS3 petstore
Some POST operations now return 200 with content.
* [dart] Generate Petstore Fake API but don't add to integration tests yet
Explicitly not adding the new integration tests to the master POM. They do not work but having them allows for quickly iterating on open issues without breaking existing basic OAS2/OAS3 petstore examples. Instead they should be run manually until everything is fixed.