Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG][typescript-axios] Unnecessary imports occurs when using nested model in allOf #4804

Closed
5 of 6 tasks
tanmen opened this issue Dec 16, 2019 · 1 comment · Fixed by #4805
Closed
5 of 6 tasks

[BUG][typescript-axios] Unnecessary imports occurs when using nested model in allOf #4804

tanmen opened this issue Dec 16, 2019 · 1 comment · Fixed by #4805

Comments

@tanmen
Copy link
Contributor

tanmen commented Dec 16, 2019

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • What's the version of OpenAPI Generator used?
  • Have you search for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Bounty to sponsor the fix (example)
Description

If allOf is used, it tries to import a nested model that is not used.
import must be used or deleted.

target schemas

    Response:
      type: string
      example: success
      enum:
        - success
        - error
    Box:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: inbox
        box:
          $ref: '#/components/schemas/BoxInBox'
    BoxInBox:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: inbox
    BoxesResponse:
      allOf:
        - $ref: '#/components/schemas/Response'
        - $ref: '#/components/schemas/Box'

generated typescript file

import { Box } from './box';
import { BoxInBox } from './box-in-box';
import { Response } from './response';

/**
 * 
 * @export
 * @interface BoxesResponse
 */
export interface BoxesResponse {
    /**
     * 
     * @type {string}
     * @memberof BoxesResponse
     */
    status: BoxesResponseStatusEnum;
    /**
     * 
     * @type {number}
     * @memberof BoxesResponse
     */
    id?: number;
    /**
     * 
     * @type {string}
     * @memberof BoxesResponse
     */
    name?: string;
    /**
     * 
     * @type {BoxInBox}
     * @memberof BoxesResponse
     */
    box?: BoxInBox;
}

/**
    * @export
    * @enum {string}
    */
export enum BoxesResponseStatusEnum {
    Success = 'success',
    Error = 'error'
}

expected

import { Box } from './box';
import { Response } from './response';

/**
 * 
 * @export
 * @interface BoxesResponse
 */
export type BoxesResponse = Response & Box;
openapi-generator version

4.2.2

OpenAPI declaration file content or url
openapi: 3.0.2
info:
  title: My application
  version: 1.0.0
  description: My application
tags:
  - name: Box
paths:
  /boxes:
    get:
      summary: Box list
      description: Box list
      operationId: showBoxes
      tags:
        - Box
      responses:
        200:
          description: Box list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BoxesResponse'
components:
  schemas:
    Response:
      type: string
      example: success
      enum:
        - success
        - error
    Box:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: inbox
        box:
          $ref: '#/components/schemas/BoxInBox'
    BoxInBox:
      type: object
      properties:
        id:
          type: number
          example: 1
        name:
          type: string
          example: inbox
    BoxesResponse:
      allOf:
        - $ref: '#/components/schemas/Response'
        - $ref: '#/components/schemas/Box'
Command line used for generation
openapi-generator generate -i openapi.yml -g typescript-axios -o apis -p withSeparateModelsAndApi=true --api-package apis --model-package models
Steps to reproduce

N/A

Related issues/PRs

#4629

Suggest a fix

#4805

@auto-labeler
Copy link

auto-labeler bot commented Dec 16, 2019

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant