SushiScriptCore 1.2.1
See the version list below for details.
dotnet add package SushiScriptCore --version 1.2.1
NuGet\Install-Package SushiScriptCore -Version 1.2.1
<PackageReference Include="SushiScriptCore" Version="1.2.1" />
<PackageVersion Include="SushiScriptCore" Version="1.2.1" />
<PackageReference Include="SushiScriptCore" />
paket add SushiScriptCore --version 1.2.1
#r "nuget: SushiScriptCore, 1.2.1"
#:package SushiScriptCore@1.2.1
#addin nuget:?package=SushiScriptCore&version=1.2.1
#tool nuget:?package=SushiScriptCore&version=1.2.1
-# Sushi Library for converting .NET classes to script language classes.
Currently supports
Author
Jeroen Vorsselman @ 2023
Features
- Converts .NET classes to script languages (typescript / ECMAScript)
- Compiled using .NET Standard 2.0
- Supports native types, type inheritance, generics and enum types
- Adds documentation using the generated MS build XML file
- 95% Code coverage
About
string xmlDocPath = Path.Combine(Environment.CurrentDirectory, "Sushi.tests.xml");
// Specify the types to convert using a Type[] or Assembly.ExportedTypes.
Assembly assembly = typeof(PersonViewModel).Assembly;
SushiConverter converter = new SushiConverter(assembly).UseDocumentation(xmlDocPath);
// Specify the script language and convert by invoking ToString().
ConverterOptions options = new ConverterOptions(excludeComments: true);
string result = converter.TypeScript(options).ToString();
Create a new SushiConverter instance with the given Assembly or Type[] that contain the types you want to convert. <br />
These classes must be decorated with the ConvertToScriptAttribute or inherit the IScriptModel interface. Classes can be excluded using the IgnoreForScriptAttribute.
The converter contains a collection of type- and enum-descriptors. These are used to generate script models. <br />
Helpers
You can check if a type exists using: IsSushiType(IConvertModels converter, Type type, out Type resolvedType) : boolean <br />
You can convert types using: TypeScriptConverter.ResolveScriptType(Type type, string prefix = "") : string <br />
You can get the script default value using: TypeScriptConverter.ResolveDefaultValue(IPropertyDescriptor prop) : string <br />
Typescript result
/**
* Simple model to verify complex types.
* @extends ViewModel
*/
export class TypeModel extends ViewModel {
/** A nullable boolean. */
nullableBool: boolean | null = null;
/** A nullable string, defaults to null. */
nullableString!: string;
/** A DateTime instance. */
date: Date | string | null = null;
student: StudentViewModel = new StudentViewModel();
students: Array<StudentViewModel> = [];
studentPerClass: { [key: string]: Array<StudentViewModel> } = {};
/** A readonly string. */
readonlyString!: string;
constructor(value: any = null) {
super(value);
if (value?.hasOwnProperty('nullableBool'))
this.nullableBool = value.nullableBool.;
if (value?.hasOwnProperty('nullableString'))
this.nullableString = value.nullableString;
if (value?.hasOwnProperty('guid'))
this.guid = value.guid;
if (value?.hasOwnProperty('date'))
this.date = value.date;
if (value?.hasOwnProperty('student'))
this.student = value.student;
if (value?.hasOwnProperty('students'))
this.students = value.students;
if (value?.hasOwnProperty('studentPerClass'))
this.studentPerClass = value.studentPerClass;
if (value?.hasOwnProperty('createdOn'))
this.createdOn = value.createdOn;
if (value?.hasOwnProperty('readonlyString'))
this.readonlyString = value.readonlyString;
}
}
| 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 was computed. 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 was computed. 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
- No dependencies.
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 |
|---|---|---|
| 1.5.2 | 218 | 12/2/2024 |
| 1.5.1 | 1,119 | 8/30/2024 |
| 1.5.0 | 195 | 6/2/2024 |
| 1.5.0-alpha.2 | 85 | 6/2/2024 |
| 1.5.0-alpha | 110 | 6/2/2024 |
| 1.4.1 | 210 | 5/27/2024 |
| 1.4.0 | 194 | 5/27/2024 |
| 1.3.1 | 262 | 3/25/2024 |
| 1.3.0 | 249 | 3/25/2024 |
| 1.2.5 | 983 | 11/11/2023 |
| 1.2.4 | 466 | 11/11/2023 |
| 1.2.3 | 438 | 11/10/2023 |
| 1.2.2 | 454 | 11/10/2023 |
| 1.2.1 | 438 | 11/8/2023 |
| 1.2.0 | 458 | 11/8/2023 |
| 1.1.6 | 709 | 10/4/2023 |
| 1.1.5 | 735 | 8/16/2023 |
| 1.1.4 | 634 | 8/15/2023 |
| 1.1.3 | 718 | 5/16/2023 |
| 1.1.2 | 695 | 5/15/2023 |
| 1.1.1 | 691 | 5/15/2023 |
| 1.1.0 | 702 | 5/15/2023 |
| 1.0.9 | 795 | 5/10/2023 |
| 1.0.8 | 699 | 5/10/2023 |
| 1.0.7 | 690 | 5/10/2023 |
| 1.0.6 | 732 | 5/10/2023 |
| 1.0.5 | 844 | 1/14/2023 |
| 1.0.4 | 881 | 1/14/2023 |
| 1.0.3 | 861 | 1/12/2023 |
| 1.0.2 | 889 | 1/5/2023 |
| 1.0.1 | 839 | 1/5/2023 |
| 1.0.0 | 875 | 1/3/2023 |
Fixed ctor object mapping