openapi-typescript icon indicating copy to clipboard operation
openapi-typescript copied to clipboard

`SuccessResponseJSON` returns item instead of array of items

Open ludwighogstrom opened this issue 1 year ago • 0 comments

Description

SuccessResponseJSON returns {value:number} instead of {value:number}[] when upgrading from [email protected] to [email protected].

Name Version
openapi-typescript-helpers 0.0.12
Node.js 20.16.0
OS + version macOS 14

Reproduction

Test file (this is a simple demo file to show the problem)

import type { SuccessResponseJSON } from "openapi-typescript-helpers";

interface paths {
  "/foo": {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    get: operations["get_foo"];
    put?: never;
    post?: never;
    delete?: never;
    options?: never;
    head?: never;
    patch?: never;
    trace?: never;
  };
}

export interface operations {
  get_foo: {
    parameters: {
      query?: never;
      header?: never;
      path?: never;
      cookie?: never;
    };
    requestBody?: never;
    responses: {
      /** @description Successful Response */
      200: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": { value: number }[];
        };
      };
      /** @description Bad request errors */
      400: {
        headers: {
          [name: string]: unknown;
        };
        content: {
          "application/json": { error: unknown };
        };
      };
    };
  };
}

const path = "/foo" as const satisfies keyof paths;
type Test = SuccessResponseJSON<paths[typeof path]["get"]>;

Version 0.0.6 (correct) Skärmavbild 2024-08-14 kl  17 26 11

Version 0.0.12 (wrong) Skärmavbild 2024-08-14 kl  17 25 41

Checklist

ludwighogstrom avatar Aug 14 '24 15:08 ludwighogstrom