title |
---|
July 2022 |
This release contains breaking changes
- Emitter options normalized to use kebab-case instead of camelCase.
@serviceHost
decorator replaced by@server
decorator- Versioning decorators now use enumerated values instead of strings
This release brings a stricter option definition for emitters and requires usage of those options to be specified with the fully qualified name to prevent conflicts.
All options have also been renamed to match kebab-case
naming.
The options can also be specified via the tspconfig.yaml
file.
If you had for example --option operationPollingLocation=tenant
-
Use
tspconfig.yaml
project file RecommendedIf you don't have that file yet, create it next to
package.json
, this file can be used to configure the emitters.emitters: <fully-qualified-emitter-package-name>: <optionName>: <optionValue> # For example emitters: @typespec/openapi3: output-file: ./openapi.json
-
Via the
--option
flagYou can still use the
--option
flag but you'll need to specify the fully qualified name of the option.--option @<emitter-package>.<optionName>=<optionValue> # For example --option @typespec/openapi3.output-file=openapi.json
Before | Now |
---|---|
@typespec/openapi3 | |
outputFile |
output-file |
The @serviceHost
decorator that decorated the root namespace was used to specify the domain name of the base service endpoint. This functionality has been replaced by the @server
decorator, which allows specifying full and parametrized Uris for the service endpoint, as described here
@serviceHost("example.com")
namespace MyService;
@server("https://example.com")
namespace MyService;
Versions must now be specified using string-valued enumerations, and each of the versioning decorators must reference an enum value rather than using the version string directly.
// Before
@versioned("2021-01-12" | "2022-01-15-preview")
namespace Api;
// After
@versioned(Versions)
namespace Api;
enum Versions { v2021_01_12: "2021-01-12", v2022_01_15_preview: "2022-01-15-preview" }
// Before
@added("2022-01-15-preview")
model Foo {}
// After
@added(Versions.v2022_01_15_preview)
model Foo {}