Skip to content

Releases: acacode/swagger-typescript-api

4.0.1 Release

12 Jan 11:59
c478151
Compare
Choose a tag to compare

Fixes:

  • Cannot find module 'prettier-plugin-organize-imports' #109

4.0.0 Release

12 Jan 11:00
14b6d3d
Compare
Choose a tag to compare

BREAKING_CHANGES:

  • Migrate from mustache template engine to ETA template engine. (Thanks @Fl0pZz)
  • Critical change in HttpResponse type (Remove D | null, E | null unions)
interface HttpResponse<D extends unknown, E extends unknown = unknown> extends Response {
-  data: D | null;
+  data: D;
-  error: E | null;
+  error: E;
}

Features:

  • --modular option. Allows to generate api class per module name.
    Example: here

  • new templates on ETA (enhanced EJS) which can improve your templates! (Thanks @Fl0pZz)
    ETA extension for Visual Studio Code (thanks @shadowtime2000)
    Also moved out to templates:

    • procedure-call.eta (request api method template)
    • route-name.eta (api method name template)
    • route-docs.eta (api method docs template)

    No worry about strange syntax it is very simple in usage :)

  • Optional templates feature (Except templates using in includeFile ETA directive)
    Now you can store only the ETA templates which you need to change for yourself.

  • --extract-request-params option. Generate path and query request params data contract and modify request payload args
    Example:
    extract-request-params

  • Improve data-contracts.eta template. Added more power :)

  • Add extraTemplates property for generateApi(). Allows to generate extra files via this tool.

  • Add hooks property for generateApi()

    hooks?: Partial<{
      onCreateComponent: (component: SchemaComponent) => SchemaComponent | void;
      onParseSchema: (originalSchema: any, parsedSchema: any) => any | void;
      onCreateRoute: (routeData: ParsedRoute) => ParsedRoute | void;
      /** Start point of work this tool (after fetching schema) */
      onInit?: <C extends GenerateApiConfiguration["config"]>(configuration: C) => C | void;
      /** Allows to customize configuration object before sending it to templates. */
      onPrepareConfig?: <C extends GenerateApiConfiguration>(currentConfiguration: C) => C | void;
    }>;
      generateApi({
        input: "./schema.json",
        output: "./__generated__",
        hooks: {
          onCreateComponent(component) {
            // do something
            return component;
          },
          // ...
        }
      })

Internal:

  • Update all dependencies to latest

Fixes:

  • x-enumNames support for enums
  • Problem of complex types (oneOf, allOf) with properties field
  • additionalProperties: true should make [key: string]: any for object types (Thanks @brookjordan for issue #103)

Common:

  • HttpClient is exportable by default
  • Improve typings when use swagger-typescript-api with NodeJS (index.d.ts)

3.1.2 Release

07 Jan 08:45
4a5d7ea
Compare
Choose a tag to compare

Fixes:

3.1.1 Release

23 Dec 11:16
9781aff
Compare
Choose a tag to compare

Fixes:

  • name.includes is not a function (issue #98)

3.1.0 Release

21 Dec 08:17
14f59aa
Compare
Choose a tag to compare

Features:

  • --moduleNameIndex option. determines which path index should be used for routes separation (Thanks @nikalun)
    Examples:
    GET:api/v1/fruites/getFruit -> index:2 -> moduleName -> fruites
    GET:api/v1/fruites/getFruit -> index:0 -> moduleName -> api

3.0.0 Release

10 Nov 09:51
1f6e21b
Compare
Choose a tag to compare

BREAKING_CHANGES:

  • Renamed mustache templates:
    • api.mustache -> data-contracts.mustache
    • client.mustache -> http.client.mustache + api.mustache
  • Split the client.mustache template into two parts: http-client.mustache and api.mustache

Fixes:

  • Fixed unsafe clone() of Response causing json() hang. (Thanks @Benjamin-Dobell)

2.0.0 Release

28 Oct 06:38
9329559
Compare
Choose a tag to compare

Features:

BREAKING_CHANGES:

  • Requests returns Promise<HttpResponse<Data, Error>> type.
    HttpResponse it is Fetch.Response wrapper with fields data and error
    Example:
      const api = new Api()
      
      //
      const response: HttpResponse<Data, Error> = await api.fruits.getAll()
    
      response.data // Data (can be null if response.ok is false)
      response.error // Error (can be null if response.ok is true)
  • Breaking changes in the client.mustache template. Needs to update local custom templates.

Fixes:

  • Security configuration in methods. When the security definition is in the main configuration of the swagger definition

1.12.0 Release

19 Aug 21:26
a163999
Compare
Choose a tag to compare

Features:

  • Can provide ability to generate from swagger JSON directly not from a file? #69 (Thanks @JennieJi)

Fixes:

  • handling x-omitempty property for definition properties #68
  • Additional properties map to empty interfaces (OpenAPI v3) #76
  • Pattern fields in Path Item Object are treated as operations #75
  • Remove const enum from default template #73
  • enums with spaces throw an error #71

1.11.0 release

13 Jul 22:17
7a23584
Compare
Choose a tag to compare

Features:

  • Improve the naming of model types (#65 issue)

1.10.0 release

26 Jun 22:00
4b0ace2
Compare
Choose a tag to compare

Features:

  • --templates CLI option. [feature request]
    Provide custom mustache templates folder which allows to generate custom code (models, Api class, routes)
  • --union-enums CLI option. [feature request]
    Allows to generate all enums as union types.
    For example, schema part:
    "StringEnum": {
      "enum": ["String1", "String2", "String3", "String4"],
      "type": "string"
    }
    
    will be converted into:
    export type StringEnum = "String1" | "String2" | "String3" | "String4";