SAP Cloud SDK for JavaScript Logo

@sap-cloud-sdk/openapi-generator

This package contains the generator to create your own service module using a OpenAPI specification. This generator is based on the OpenAPI Tools generator for OpenAPI and adds some additional code for convenience to better integrate with the SAP Cloud SDK.

Installation

$ npm install @sap-cloud-sdk/openapi-generator

To run the CLI locally, compile and link the package.

$ yarn install

$ yarn compile

$ npm link

$ openapi-generator help

Usage (CLI)

Generate OpenAPI client(s), that use the connectivity features of the SAP Cloud SDK for JavaScript/TypeScript.

Usage: openapi-generator --input <input> --outputDir <outputDirectory>

Options:
--help Show help [boolean]
--version Show version number [boolean]
-i, --input Specify the path to the directory or file
containing the OpenAPI service definition(s) to
generate clients for. Accepts Swagger and OpenAPI
definitions as YAML and JSON files. Throws an
error if the path does not exist.
[string] [required]
-o, --outputDir Specify the path to the directory to generate the
client(s) in. Each client is generated into a
subdirectory within the given output directory.
Creates the directory if it does not exist.
Customize subdirectory naming through
`--optionsPerService`. [string] [required]
-t, --transpile Transpile the generated TypeScript code. When
enabled a default `tsconfig.json` will be
generated and used. It emits `.js`, `.js.map`,
`.d.ts` and `.d.ts.map` files. To configure
transpilation set `--tsconfig`.
[boolean] [default: false]
--include Include files matching the given glob into the
root of each generated client directory. [string]
--overwrite Allow to overwrite files, that already exist. This
is useful, when running the generation regularly.
[boolean] [default: false]
--clearOutputDir Remove all files in the output directory before
generation. Be cautious when using this option, as
it really removes EVERYTHING in the output
directory. [boolean] [default: false]
--skipValidation By default, the generation fails, when there are
duplicate or invalid names for operations and/or
path parameters after transforming them to camel
case. Set this to true to enable unique and valid
name generation. The names will then be generated
by appending numbers and prepending prefixes.
[boolean] [default: false]
--tsConfig Replace the default `tsconfig.json` by passing a
path to a custom config. By default, a
`tsconfig.json` is only generated, when
transpilation is enabled (`--transpile`). If a
directory is passed, a `tsconfig.json` file is
read from this directory. [string]
--packageJson When enabled, a `package.json`, that specifies
dependencies and scripts for transpilation and
documentation generation is generated.
[boolean] [default: false]
--licenseInPackageJson License to be used on the generated package.json.
Only considered if 'packageJson' is enabled.
[string]
-v, --verbose Turn on verbose logging.[boolean] [default: false]
--optionsPerService Set the path to a file containing the options per
service. The configuration allows to set a
`directoryName` and `packageName` for every
service, identified by the path to the original
file. It also makes sure that names do not change
between generator runs. If a directory is passed,
a `options-per-service.json` file is read/created
in this directory. [string]
-c, --config Set the path to a file containing the options for
generation instead of setting the options on the
command line. When combining the `config` option
with other options on the command line, the
command line options take precedence. If a
directory is passed, a `config.json` file is read
from this directory. [string]

Usage (programmatically)

import { generate } from '@sap-cloud-sdk/openapi-generator';

// initialize generator options based on what you want to do
// note that inputDir and outputDir are mandatory
const options: GeneratorOptions = {
inputDir: 'path/to/inputDir',
outputDir: 'path/to/outputDir'
};

// generates the files and writes them to the outputDir
await generate(options);

For more detailed overview visit our generator documentation.

Support

The recommended way to get in touch with us is to create an issue on GitHub. Select the issue category Bug, Feature or Question depending on the nature of your request. We try to provide fixes, features and answers as soon as possible.

Contribute

If you would like to contribute to the SAP Cloud SDK, please make yourself familiar with our contributing guidelines and follow the given instructions.

Links




License

The SAP Cloud SDK is released under the Apache License Version 2.0.

Index

Interfaces

Functions

Copyright Ⓒ 2023 SAP SE or an SAP affiliate company. All rights reserved.