Emitter usage
Usage
- Via the command line
tsp compile . --emit=@typespec/openapi3- Via the config
emit:  - "@typespec/openapi3"The config can be extended with options as follows:
emit:  - "@typespec/openapi3"options:  "@typespec/openapi3":    option: valueEmitter options
emitter-output-dir
Type: absolutePath
Defines the emitter output directory. Defaults to {output-dir}/@typespec/openapi3
See Configuring output directory for more info
file-type
Type: "yaml" | "json"
If the content should be serialized as YAML or JSON. Default ‘yaml’, it not specified infer from the output-file extension
output-file
Type: string
Name of the output file. Output file will interpolate the following values:
- service-name: Name of the service
- service-name-if-multiple: Name of the service if multiple
- version: Version of the service if multiple
Default: {service-name-if-multiple}.{version}.openapi.yaml or .json if file-type is "json"
Example Single service no versioning
- openapi.yaml
Example Multiple services no versioning
- openapi.Org1.Service1.yaml
- openapi.Org1.Service2.yaml
Example Single service with versioning
- openapi.v1.yaml
- openapi.v2.yaml
Example Multiple service with versioning
- openapi.Org1.Service1.v1.yaml
- openapi.Org1.Service1.v2.yaml
- openapi.Org1.Service2.v1.0.yaml
- openapi.Org1.Service2.v1.1.yaml
openapi-versions
Type: array
new-line
Type: "crlf" | "lf"
Set the newline character for emitting files.
omit-unreachable-types
Type: boolean
Omit unreachable types. By default all types declared under the service namespace will be included. With this flag on only types references in an operation will be emitted.
include-x-typespec-name
Type: "inline-only" | "never"
If the generated openapi types should have the x-typespec-name extension set with the name of the TypeSpec type that created it.
This extension is meant for debugging and should not be depended on.
safeint-strategy
Type: "double-int" | "int64"
How to handle safeint type. Options are:
- double-int: Will produce- type: integer, format: double-int
- int64: Will produce- type: integer, format: int64
Default: int64
seal-object-schemas
Type: boolean
If true, then for models emitted as object schemas we default additionalProperties to false for
OpenAPI 3.0, and unevaluatedProperties to false for OpenAPI 3.1, if not explicitly specified elsewhere.
Default: false