Skip to content

Add the possibility to generate non empty array types #2810

@adrndfn

Description

@adrndfn

Description

We tried to generate a parameter type with a non empty array with "minItems": 1 json schema conf ( part of our openapi.json ) :

          {
            "name": "nodeIds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "title": "Contextual node ids",
              "examples": [
                [
                  1,
                  2,
                  3
                ]
              ],
              "minItems": 1,
              "default": []
            }
          },

We get this generated code in types.gen.ts :

/**
* Contextual node ids
*/
nodeIds: Array<number>;

But we would expect to generate something like :

/**
* Contextual node ids
*/
nodeIds: [number, ...number[]];

Here is opeanapi-ts.config.ts

import { defaultPlugins, defineConfig } from "@hey-api/openapi-ts";

export default defineConfig({
    input: "openapi.json",
    output: { format: "biome", path: "./src/client" },
    plugins: [
        ...defaultPlugins,
        "@hey-api/client-fetch",
        { name: "@hey-api/transformers", dates: true },
        { name: "@hey-api/sdk", transformer: true },
        {
            name: "@hey-api/typescript",
            readOnlyWriteOnlyBehavior: "off",
        },
    ],
});

And related comment to generate types.gen.ts

rm -rf ./src/client && openapi-ts -f ./openapi-ts.config.ts

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions