* 👕🎨 Minor refactor DefaultGenerator
This cleans up some lint warnings and improve general code cleanliness
of DefaultGenerator.
Specifically:
* logger strings are now using the built-in log formatter rather than
constructing new strings regardless of log level.
* Diamond operators are used where possible
* Some long-unused commented code has been removed
* Lambdas are used where possible
* Redundant operations are merged (HashMap constructor used rather than
subsequent putAll on a collection, for example)
* [cli][core] Add support for dry-run and display
CLI now supports `--dry-run`, which will output a file change status
similar to git status --porcelain.
The user may also specify `--verbose` for a one-liner below each file
explaining why the change operation might take place.
* [typescript-rxjs] fix coalescing in Configuration
- eliminate nully "" (empty string) value via conditional check
- use concrete "string" type in typeof check
("function" may be returned for Object types
* [typescript-rxjs] update petstore sample
* run petstore-all
- run the script for updating all petstores
./bin/typescript-rxjs-petstore-all.sh
* python: Add gitlab-ci.mustache
It does the same stuff as in the .travis.yml but just for Gitlab CI
#5340 - Python .gitlab-ci.yml
* python: Run all scripts in bin
find bin/ -type f -name 'python*.sh' -exec {} \;
Had to update all samples
* Remove DateTime mapping from concrete TypeScript generators that do not have full support for Date deserialization
* Fix model unit tests
* Regenerate samples
* [kotlin][client] remove null message on server error
* [kotlin][client] avoid breaking change
* [kotlin][client] add response to client and server exceptions
* [kotlin][client] improve message on ClientException and ServerException
* [templates] Update to vendor extension standard keys
* Fix missed value in Java template, also implements=>x-implements. Evaluate Haskell Client changes
* Fix missing accept/content-type update for vendor extension format
* type aliasing issue
* Add example OpenAPI document from issue 3589
https://github.com/OpenAPITools/openapi-generator/issues/3589
* Add test to reproduce the issue
- type of TypeAlias changed from 'string' to 'object'
(not sure if importMapping is supposed also for 'string' types...)
- there might be better ways to write the test, it's kind of a brute
force test (generate a file and parse it with a regexp)
* Remove duplicate test file
* Add new method override handleMethodResponse
Fixes broken unit test after merge from master
Co-authored-by: bkoziak <bkoziak@gmail.com>
Co-authored-by: William Cheng <wing328hk@gmail.com>
* 3432 Use builder api of OkHttpClient to avoid UnsupportedOperationEx
The reason for the UnsupportedOperationException was an invalid access to the interceptors list of OkHttpClient. That list is unmodifiable as stated by the JavaDoc. Instead accessing the list directly, the interceptors should always be passed when building the client by the builder api.
* 3432 Use builder api of OkHttpClient to avoid UnsupportedOperationEx
The reason for the UnsupportedOperationException was an invalid access to the interceptors list of OkHttpClient. That list is unmodifiable as stated by the JavaDoc. Instead accessing the list directly, the interceptors should always be passed when building the client by the builder api.
* 3432 Follow-up fix to make samples compile again
* 3432 Updated sample implementation for okHttp-Gson-ParcelableModel
* initial commit for null type
* Add openAPI attribute to validation and recommendation
* improve code comments. the warning used to notify the users to use instead of defining the schema inline, but now the InlineModelResolver has been enhanced
* Add validation rule for the supported values of the 'type' attribute
* [typescript] Don't hardcode the date type if user has mapped it
If the user has set --type-mappings Date=foo, respect this setting
instead of hardcoding the date type.
* Use default type mappings for date/date-time
* Use typeMapping mechanism correctly
* Add default mapping for angular and node to preserve behavior
* One more change to keep current behavior
* Add default type mappings to the other TS generators
* [go-experimental] Add oneOf support
* Fix docs for the oneOf models
* isOneOfInterface => x-is-one-of-interface
* Add proper warnings when inline models are used in oneOf choices
* Add a convenience method to oneOf implementing structs to cast them as the oneOf interface
* Update modules/openapi-generator/src/main/resources/go-experimental/model.mustache
Co-Authored-By: Jiri Kuncar <jiri.kuncar@gmail.com>
* Fix retrieving data from additionalDataMap
* Add basic tests
Co-authored-by: Jiri Kuncar <jiri.kuncar@gmail.com>
* [typescript-fetch] Make additional properties access safer
Instead of asserting that any key access returns a valid property, force
the consumer to check that the value is defined.
* Update tests
* Put null-safe additional props behind and flag and share
* Undo over copy
* Update docs
* Rearrange code
* Move to unit tests
This fixes issue #3796 for JavaSpring. It's a very straightfoward extension
of #5120 for the JavaSpring generator (that PR was just for the Java generator).
* Reduce redundancy in python docs
This is a followup to PR #5094, which had a few unresolved comments at
merge time. This reduces the amount of redundant lines in the api
example doc templates, and ensures that referenced Configuration objects
are actually instantiated.
* Regenerate samples
* Add real assertions in DefaultCodegenTest.java testAllOfXXX methods
* Add test to DefaultCodegenTest for an allOf composition with a single ref and no own props
* Ensure model.parent is also added to model.allParents when multipleInheritance is supported
* Cleanup: remove LOGGER.debug, renamed refedParentNames to refedWithoutDiscriminator
* [core] Normalizing vendor extension naming
According to [OAS 2.0][1] and [OAS 3.0][2] Specifications:
> Allows extensions to the OpenAPI Schema. The field name MUST begin with x-,
> for example, x-internal-id. The value can be null, a primitive, an array or an object.
> Can have any valid JSON format value.
This commit attempts to define a [clear identifier design format][3] of
maintaining lower-kebab casing and following the x- prefix defined by
OAI Specification.
Following a convention that matches that used by others (see [autorest][4]), we will remove
any confusion about naming strategies for template authors and
customizers. Following the lower-kebab convention will allow us to
convert from camelCase and missing prefixes to the desired format. For
example, these conversions are simple to make for template consistency:
* customValue => x-custom-value
* x-customValue => x-custom-value
* x-custom-value => x-custom-value
This convention also allows us to define a single standard for use
across all generators. This means no occurrence of x-operationId in one
generator and x-operation-id in another.
[1]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#patterned-objects
[2]: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#specificationExtensions
[3]: https://tools.ietf.org/html/draft-wilde-registries-01#section-3.4
[4]: https://github.com/Azure/autorest/tree/master/docs/extensions
* Incorporate feedback to avoid race/blocking in OnceLogger
* Remove unnecessary additional log config
* Add tests,comments for OnceLogger
* Test caffeine cache with FakeTicker
* [kotlin] Fix compile of reserved word in client
A number of places in the client code need to be escaped for reserved
words.
That is, this should be:
(git log formatted): `as` rather than as
(markdown formatted): \`as\` rather than `as`
There are only a handful of places using `{{paramName}}` which HTML
encodes backticks, rather than `{{{paramName}}}` which outputs literal
values.
Added unit test to maintain the reserved word standard for Kotlin.
* don't use kotlin-codegen-escaped parameters in parameter-map
Co-authored-by: Andreas Müller <andreas@stapelspeicher.org>
* fix map as query parameter, use RequestPart instead of RequestParam in
FormParams, add filename for parameters of type file
* fix brace
* fix tests
* run bin/windows bat files
* test if this solves linending problem part 1
* test if this solves linending problem part 2
* test if this solves linending problem part 3
* test if this solves linending problem part 4
* test if this solves linending problem part 5
* test if this solves linending problem part 6
* manually set back version in pom
* update spring samples
Co-authored-by: William Cheng <wing328hk@gmail.com>
* improve python documentation and add import to __init__package.mustache
* improve python documentation and add import to __init__package.mustache
* add signing_info parameter conditionally
* add code comments and remove 'Content-Length' header from example
* Remove debug log statement
* set access_token to None by default
* set access_token to None by default
* fix unit tests for Python experimental
* fix trailing space