Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Issues
  • #12973
Closed
Open
Issue created Jul 21, 2022 by Administrator@rootContributor5 of 6 checklist items completed5/6 checklist items

[BUG] typescript generator throws when `additionalProperties` is set to `true`

Created by: arnemolland

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

When using the typescript generator, anywhere additionalProperties is explicitly set to true, the generator throws. It should be expected with array types, but this happens on object types. This is not the case with the typescript-axios or typescript-fetch generators. It does not throw when additionalProperties is set to false or if it's omitted (in which case I've interpreted the spec as to it's true by default).

openapi-generator version

6.0.1

OpenAPI declaration file content or url
Repro JSON schema

{
    "openapi": "3.0.3",
    "components": {
        "schemas": {
            "foo": {
                "properties": {
                    "bar": {
                        "additionalProperties": true,
                        "description": "baz",
                        "type": "object"
                    }
                },
                "type": "object"
            }
        }
    },
    "info": {
        "title": "Repro",
        "version": "1.0.0"
    },
    "paths": {
        "/": {
            "get": {
                "description": "Foo",
                "operationId": "getFoo",
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "foo": {
                                            "description": "Foo.",
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "foo"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Foo"
                    }
                },
                "summary": "Foo",
                "tags": [
                    "metadata"
                ]
            }
        }
    }
}
Generation Details
openapi-generator-cli generate -i spec.json -g typescript -o /dev/null
Steps to reproduce

Use the typescript generator to generate code from any schema where any components.schemas.properties object has additionalProperties set to true.

Logs

Exception in thread "main" java.lang.RuntimeException: Could not process model 'errorAuthenticatorAssuranceLevelNotSatisfied'.Please make sure that your schema is correct!
        at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:509)
        at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:911)
        at org.openapitools.codegen.cmd.Generate.execute(Generate.java:465)
        at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
        at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)
Caused by: java.lang.ClassCastException: class java.lang.Boolean cannot be cast to class io.swagger.v3.oas.models.media.Schema (java.lang.Boolean is in module java.base of loader 'bootstrap'; io.swagger.v3.oas.models.media.Schema is in unnamed module of loader 'app')
        at org.openapitools.codegen.languages.TypeScriptClientCodegen.getTypeDeclaration(TypeScriptClientCodegen.java:890)
        at org.openapitools.codegen.DefaultCodegen.fromProperty(DefaultCodegen.java:3650)
        at org.openapitools.codegen.DefaultCodegen.addVars(DefaultCodegen.java:5402)
        at org.openapitools.codegen.DefaultCodegen.addVars(DefaultCodegen.java:5344)
        at org.openapitools.codegen.DefaultCodegen.updateModelForObject(DefaultCodegen.java:2672)
        at org.openapitools.codegen.DefaultCodegen.fromModel(DefaultCodegen.java:2873)
        at org.openapitools.codegen.DefaultGenerator.processModels(DefaultGenerator.java:1288)
        at org.openapitools.codegen.DefaultGenerator.generateModels(DefaultGenerator.java:504)
        ... 4 more
Related issues/PRs
Suggest a fix
Assignee
Assign to
Time tracking