OpenAPITools / openapi-generator-cli

A node package wrapper for https://github.com/OpenAPITools/openapi-generator
Apache License 2.0
1.45k stars 153 forks source link

Unable to provide custom files for generation [BUG] #668

Open ngarg-vail opened 2 years ago

ngarg-vail commented 2 years ago

🐛 Bug Report:

Describe the bug

The openapi generator specifies the ability to provide custom files/templates (https://openapi-generator.tech/docs/customization). This feature does not work with the current version of the CLI.

Steps to Reproduce

Steps to reproduce the behavior:

  1. Install latest version of openapi-generator-cli (currently 5.4.0) npm install openapi-generator-cli@5.4.0

  2. Provide the following for the openapitools.json file (note the files keyword), e.g.

    { "$schema": "/path/to/schema", "generator-cli": { "version": "5.4.0", "generators": { "nodejs": { "templateDir": "#{cwd}/nodejs/templates", "generator-name": "typescript", "output": "#{cwd}/nodejs/sdk", "inputSpec": "#{cwd}/openapi.json", "additionalProperties": { "esTargetVersion": "ES2020", "moduleResolution": "nodejs", "framework": "fetch-api", "platform": "node", "license": "MIT", "useInversify": false, "legacyDiscriminatorBehavior": false }, "files": { "api_test.mustache": { "templateType": "ApiTests", "destinationFilename": "spec/api_test.spec.ts" } } } } } } }

  3. Execute the generator openapi-generator-cli generate --generator-key nodejs

  4. See error

[[nodejs] #{cwd}/openapi.json] [error] Found unexpected parameters: [--files=api_test.mustache=[object Object]]
[[nodejs] #{cwd}/openapi.json] 
[[nodejs] #{cwd}/openapi.json] See 'openapi-generator-cli help' for usage.

  java -jar "node_modules/@openapitools/openapi-generator-cli/versions/5.4.0.jar" generate
--input-spec="/openapi.json"
--template-dir="/openapi-spec/nodejs/templates"
--generator-name="typescript" 
--output="/nodejs/sdk" 
--additional-properties="esTargetVersion=ES2020,moduleResolution=nodejs,framework=fetch-api,platform=node,license=MIT,useInversify=false,legacyDiscriminatorBehavior=false" 
--files="api_test.mustache=[object Object]" exited with code 1

Expected behavior

the "files" keyword gets resolved properly and all sub-properties are provided to the cli.

Operation System (please complete the following information):

Package System (please complete the following information):

Additional context

The typescript generator doesn't ship with a test runtime, so I was in the process of using the customization feature - ran into this instead.

HarisSpahija commented 1 year ago

Is there any update on this?