Skip to content

torutek/SigSpec

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SigSpec for SignalR Core

TypeScript CodeGen CSharp CodeGen

Code generator for SignalR Core.

Based on NJsonSchema (see also: NSwag).

Usage

Generate CSharp Client

var sigSpecSettings = new SigSpecGeneratorSettings();
var generator = new SigSpecGenerator(sigSpecSettings);

var document = await generator.GenerateForHubsAsync(new Dictionary<string, Type>
  {
    { "my-hub", typeof(MyHub) }
  });

var codeGeneratorSettings = new SigSpecToCSharpGeneratorSettings
{
  CSharpGeneratorSettings =
  {
    Namespace = "MyProject.SignalR.Clients",
    GenerateNullableReferenceTypes = true,
  }
};

var codeGenerator = new SigSpecToCSharpGenerator(codeGeneratorSettings);
var code = codeGenerator.GenerateClients(document);
File.WriteAllText("SignalRClient.cs", code);

Generate TypeScript Client

var sigSpecSettings = new SigSpecGeneratorSettings();
var generator = new SigSpecGenerator(sigSpecSettings);

var document = await generator.GenerateForHubsAsync(new Dictionary<string, Type>
{
  { "my-hub", typeof(MyHub) }
});

var codeGeneratorSettings = new SigSpecToTypeScriptGeneratorSettings
{
  TypeScriptGeneratorSettings =
  {
    TypeStyle = TypeScriptTypeStyle.Class,
    NullValue = TypeScriptNullValue.Null,
    MarkOptionalProperties = false,
    ConvertConstructorInterfaceData = true
  }
};

var codeGenerator = new SigSpecToTypeScriptGenerator(codeGeneratorSettings);
var code = string.Join(Environment.NewLine,
  "/* tslint:disable */",
  "/* eslint-disable */",
  "// @ts-ignore",
  codeGenerator.GenerateFile(document)
);
File.WriteAllText("SignalRClient.ts", code);

About

Specification and code generator for SignalR Core.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 83.7%
  • Liquid 16.3%