redux-toolkit icon indicating copy to clipboard operation
redux-toolkit copied to clipboard

@rtk-query/codegen failed when openApi file refs to another file with schemas

Open vilola opened this issue 1 year ago • 0 comments

I have multiple .yml files with api documentation. Few of them uses schemas refs with another files. Rest of them have refs only within one file.

With the api docs with cross file refs, rtk query codegen has problem and returns (seemingly unrelated) error. The other files are ok and it generates types and everything probably well. We didnt find any other difference then the refs.

The error:

PS C:\Workspace\project> npm run rtk-codegen

> [email protected] rtk-codegen
> npx @rtk-query/codegen-openapi openapi.config.ts  

Generating ./src/core/serverApi/generated/users.ts
Error: Can't find paths,/transactions,get,responses,200,content,application/json,schema,properties,content,items,oneOf,0,allOf,0,properties,data,properties,amount
    at ApiGenerator.resolve (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:334:13)
    at check (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:823:32)
    at check (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:850:24)
    at ApiGenerator.checkSchemaOnlyMode (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:858:12)
    at ApiGenerator.getRefAlias (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:441:44)       
    at ApiGenerator.getBaseTypeFromSchema (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:580:19)
    at ApiGenerator.getTypeFromSchema (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:563:23) 
    at ApiGenerator.getBaseTypeFromSchema (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:647:27)
    at ApiGenerator.getTypeFromSchema (C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:563:23) 
    at C:\Workspace\project\node_modules\oazapfts\src\codegen\generate.ts:547:16

Example of the ref in put action:

requestBody:
        content:
          application/json:
            schema:
              $ref: './project-schema.yml#/components/schemas/UpdateUser'

vilola avatar Feb 26 '24 17:02 vilola