TypedRest.CodeGeneration.TypeScript
0.2.0
dotnet add package TypedRest.CodeGeneration.TypeScript --version 0.2.0
NuGet\Install-Package TypedRest.CodeGeneration.TypeScript -Version 0.2.0
<PackageReference Include="TypedRest.CodeGeneration.TypeScript" Version="0.2.0" />
<PackageVersion Include="TypedRest.CodeGeneration.TypeScript" Version="0.2.0" />
<PackageReference Include="TypedRest.CodeGeneration.TypeScript" />
paket add TypedRest.CodeGeneration.TypeScript --version 0.2.0
#r "nuget: TypedRest.CodeGeneration.TypeScript, 0.2.0"
#:package TypedRest.CodeGeneration.TypeScript@0.2.0
#addin nuget:?package=TypedRest.CodeGeneration.TypeScript&version=0.2.0
#tool nuget:?package=TypedRest.CodeGeneration.TypeScript&version=0.2.0
Code Generation for TypeScript
Generates TypeScript source code for TypedRest for TypeScript clients from OpenAPI/Swagger documents.
dotnet add package TypedRest.CodeGeneration.TypeScript
Use this to build your own code generator. If you just want to generate a client for your API, use the command-line tool instead; it is built on this library.
Usage
var reader = new OpenApiStreamReader(new OpenApiReaderSettings().AddTypedRest());
var doc = reader.Read(File.OpenRead("myapi.yml"), out _);
foreach (var file in doc.GenerateTypedRestTypeScript(new TypeScriptGenerationOptions("MyService")
{
DtoNamespace = "dtos",
GenerateDtos = true
}))
file.WriteToDirectory("myclient/");
GenerateTypedRestTypeScript() uses the endpoints described by the document's x-typedrest extension, or infers them from the paths using TypedRest.CodeGeneration if there is no such extension.
The generated code imports from the typedrest package, so consumers need to run:
npm install typedrest
Output
One file per generated type, plus an index.ts re-exporting all of them. Namespace and DtoNamespace are directories relative to the output directory, defaulting to the root and dtos respectively.
Endpoints become classes deriving from the TypedRest endpoint types, exposing their children as getters. DTOs become interfaces, and schemas with an enum become literal union type aliases.
Extension points
GenerateTypedRestTypeScript() takes an optional PatternRegistry controlling what is inferred, and an optional BuilderRegistry controlling what is emitted:
var files = doc.GenerateTypedRestTypeScript(options, log, patterns, builders);
Implement IBuilder<TEndpoint> to change the code emitted for an endpoint kind. A BuilderRegistry holds at most one builder per kind, so replacing a built-in one means composing the registry yourself rather than adding to BuilderRegistry.Default.
To change how types and properties are named, derive from NamingStrategy and pass it to GenerateTypedRestTypeScriptEndpoints().
Related packages
- TypedRest.CodeGeneration is the basis of this library. It parses OpenAPI/Swagger documents and infers TypedRest Endpoints from patterns.
- TypedRest.CodeGeneration.CSharp does the same for C#.
- typedrest-codegen is a command-line tool that builds on this library and writes the generated code to disk.
Links
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- TypedRest.CodeGeneration (>= 0.2.0)
-
net10.0
- TypedRest.CodeGeneration (>= 0.2.0)
-
net8.0
- TypedRest.CodeGeneration (>= 0.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0 | 52 | 8/10/2026 |