Skip to content

Releases: mnahkies/openapi-code-generator

v0.16.0

02 Nov 12:08
Compare
Choose a tag to compare

What's Changed

Client class exports will now be given unique names generated from the input specifications info.title field. This can additionally be overridden through a new cli arg --override-specification-title.

The previous generic exports are kept for backwards compatibility.

POTENTIALLY BREAKING: Filenames generated from tags or route prefixes will now follow kebab-case naming convention by default. This can be customized to other conventions like camel-case, etc using --filename-convention

Features

  • feat: unique client export names by @mnahkies in #263
  • feat!: dynamic filename conventions / no spaces in filenames by @mnahkies in #259
  • feat: safer identifier transformation by @mnahkies in #260

Misc

Full Changelog: v0.15.0...v0.16.0

v0.15.0

27 Oct 17:14
Compare
Choose a tag to compare

What's Changed

It's now possible to change the construct used for the "implementation" symbol between being a type, interface or abstract class using the new option --ts-server-implementation-method. This is particularly useful if using a dependency injection library that requires abstract class as part of its wiring approach.

Additionally, when splitting the generated files by first-tag / first-slug (using --grouping-strategy), the tag/slug will now be added to the exported symbol names, eg: createRouter -> createMyTagRouter and Implementation -> MyTagImplementation. This can reduce the need to alias imports manually.

The generic Implementation / createRouter exports have be retained to keep this backwards compatible.

Features

  • feat: support emitting abstract classes for implementation types by @mnahkies in #256
  • feat: emit unique symbol names for Implementation / createRouter functions by @mnahkies in #258

Misc

Full Changelog: v0.14.0...v0.15.0

v0.14.0

12 Oct 12:13
Compare
Choose a tag to compare

What's Changed

Fixes a few small bugs, and adds support for relative $refs when using a URI as the input.

Features

  • feat: support loading relative remote uris by @mnahkies in #254

Bug fixes

  • fix: allow $ref to be used as a schema property by @mnahkies in #250
  • fix: handle type: "null" in anyOf / oneOf / allOf by @mnahkies in #252

Misc

Full Changelog: v0.13.0...v0.14.0

v0.13.0

20 Sep 16:09
Compare
Choose a tag to compare

What's Changed

This release adds support for schemas specifying default values, and begins validating / parsing incoming request headers. Note: this may be a breaking change if your server currently accepts requests with invalid request headers.

Features

Docs

Misc

Full Changelog: v0.12.1...v0.13.0

v0.12.1

17 Aug 16:08
Compare
Choose a tag to compare

What's Changed

This release fixes a small typing mistake preventing queries parameters of type number[] from building properly, and fixes bugs in the handling of header parameters / defaults and the "escape hatch" parameters allowing arbitrary fetch / axios request options to be passed.

It's also the first release with automated end-to-end tests in place, though the coverage is still low - this will be improved during the course of development going forward.

Bug fixes

  • fix: allow number array query param by @mnahkies in #236
  • fix(fetch/axios): correctly merge headers from opts by @mnahkies in #231

Testing

Misc

Full Changelog: v0.12.0...v0.12.1

v0.12.0

05 Aug 07:03
Compare
Choose a tag to compare

What's Changed

Another small release, adding a new CLI parameter OPENAPI_REMOTE_SPEC_REQUEST_HEADERS / --remote-spec-request-headers that allows request headers to be sent when fetching specifications from remote URI's.

This makes it possible to generate from a remote URI that is behind some form of header based authentication, eg: Authorization: Bearer <bla> (which includes cookie based authentication since cookies are just a Cookie header, and basic auth as this is just Authorization: Basic <credentials>).

The headers are scoped to specific domains/urls such that you can mix and match sources without leaking tokens to the wrong servers.

Features

  • feat: support remote specs with authentication by @mnahkies in #230

Misc

Full Changelog: v0.11.2...v0.12.0

v0.11.2

29 Jul 17:42
Compare
Choose a tag to compare

What's Changed

This is a bug fix release, solving an issue with the order schemas were output when generating from specifications that are split over multiple files, causing variable used before declaration issues.

Bug fixes

  • fix: include schemas from all documents in dependency graph by @mnahkies in #227

Documentation

Full Changelog: v0.11.1...v0.11.2

v0.11.1

27 Jul 10:22
Compare
Choose a tag to compare

What's Changed

This is a bug fix release, containing a solution for #217.

Previously query parameters of an array type did not work when a single element was provided, now this will be parsed and handed to the route handler as an array of one element.

Bug fixes

  • fix: support array of 1 for query parameter arrays (round 2) by @mnahkies in #225

Misc

Full Changelog: v0.11.0...v0.11.1

v0.11.0

08 Jun 09:38
Compare
Choose a tag to compare

What's Changed

This release contains 1 bug fix for default header handling in typescript-axios and several internal refactoring changes required to facilitate the work-in-progress documentation playground

Also dropped eslint for biome because I can't be bothered figuring out the eslint@^9 upgrade / configuration migration.

Bug fixes

Internal refactoring

Misc

Full Changelog: v0.10.0...v0.11.0

v0.10.0

25 May 09:38
Compare
Choose a tag to compare

What's Changed

This release is primarily bug fixes, and internal refactoring to facilitate improvements to documentation. Most effort has gone into the new documentation site live at https://openapi-code-generator.nahkies.co.nz/

It also splits the cli from the library entrypoint such that you can now import {generate} from '@nahkies/openapi-code-generator' for programmatic usage if you wish, and improves handling of boolean cli flags.

BREAKING CHANGES
There are several potentially breaking changes here:

  • Dropped the "safe edit region" functionality, I doubt anyone was using this and it wasn't particularly robust
  • Improved handling of additionalProperties / {} schemas to better align with the specification
  • Joi validation became stricter for strings with format email / date-time

This may make some schemas / types change type to unknown, and start serializing/deserializing values that were previously stripped (see #200). If you want more permissive types (any) in these situations rather than unknown you can use the --ts-allow-any cli flag.

Bug fixes

  • fix!: an {} schema should be an unknown/any type by @mnahkies in #204
  • fix!: drop safe edit regions by @mnahkies in #198
  • fix!: joi supports email / date-time string formats by @mnahkies in #206
  • fix: improve handling of cli boolean params by @mnahkies in #205
  • fix: only allow publish of releases from latest main by @mnahkies in #161

Internal refactoring

Docs

Misc

  • chore: upgrade dependencies / angular v18 by @mnahkies in #207
  • chore: refresh data and regenerate by @mnahkies in #208
  • chore: bump lerna by @mnahkies in #203
  • fix: make renovate less noisy by @mnahkies in #197
  • chore: Configure Renovate by @renovate in #170
  • chore(deps): update dependency @azure-tools/typespec-client-generator-core to v0.41.8 by @renovate in #171
  • chore(deps): update dependency @types/node to v20.12.8 by @renovate in #172
  • fix(deps): update angular monorepo by @renovate in #175
  • chore(deps): update dependency typescript to ~5.4.0 by @renovate in #180
  • chore(deps): update dependency node to v20.12.2 by @renovate in #179
  • chore(deps): update yarn to v4.2.1 by @renovate in #182
  • chore(deps): update dependency zod to v3.23.6 by @renovate in #174
  • chore(deps): update typescript-eslint monorepo to v7.8.0 by @renovate in #181
  • fix(deps): update dependency ajv to v8.13.0 by @renovate in #183
  • chore(deps): update dependency eslint-plugin-jest to v28.5.0 by @renovate in #178
  • fix(deps): update dependency @biomejs/biome to v1.7.2 by @renovate in #176

New Contributors

Full Changelog: v0.9.0...v0.10.0