public void Can_emit_knockout_js_files(string[] sourceFiles, string label) { var config = new TypescriptGeneratorSettings("App", suffix: "Model", koJs: true, references: new string[] { "../../../../node_modules/@types/knockout/index.d.ts" }); var results = KnockoutJsGenerator.Emit(config, sourceFiles); Diff.Approve(UTF8(results), ".ts", label); }
public void Can_emit_declaration_files(string[] sourceFiles, string label) { var config = new TypescriptGeneratorSettings(); string results = UTF8(DeclarationFileGenerator.Emit(config, sourceFiles)); Diff.Approve(results, ".ts", label); }
internal static string NormalizeName(TypeDefinition definition, TypescriptGeneratorSettings settings) { string prefix = (!definition.IsEnum && !string.IsNullOrEmpty(settings.Prefix) ? settings.Prefix : string.Empty); string suffix = (!definition.IsEnum && !string.IsNullOrEmpty(settings.Suffix) ? settings.Suffix : string.Empty); return(NormalizeName(definition, prefix, suffix)); }
public bool Execute() { Enum.TryParse(OutputType, out FileType kind); var options = new TypescriptGeneratorSettings(Namespace, Prefix, Suffix, AsAbstract, (kind == FileType.KnockoutJs), References); if (_sourceFiles == null) { _sourceFiles = SourceFiles.Select(x => x.GetMetadata("FullPath")).ToArray(); } BuildEngine.Debug("Generating typescript models ..."); foreach (string filePath in _sourceFiles) { BuildEngine.Debug($"src: '{filePath}'"); } byte[] data; switch (kind) { default: case FileType.Model: data = TypescriptGenerator.Emit(options, _sourceFiles); break; case FileType.KnockoutJs: data = KnockoutJsGenerator.Emit(options, _sourceFiles); break; case FileType.Declaration: data = DeclarationFileGenerator.Emit(options, _sourceFiles); break; } if (string.IsNullOrEmpty(_outputFile)) { _outputFile = DestinationFile.GetMetadata("FullPath"); } string folder = Path.GetDirectoryName(_outputFile); if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } File.WriteAllBytes(_outputFile, data); BuildEngine.Info($"Generated typescript file at '{_outputFile}'.", nameof(GenerateTypescriptModels)); return(true); }
public void Can_emit_enum_definition_as_as_dts() { // Arrange var declaration = new TypeDefinition("Foo", (Trait.Public | Trait.Enum)) .Add(new MemberDefinition("A", new TypeDefinition("int", (Trait.Enum | Trait.Public)))) .Add(new MemberDefinition("B", new TypeDefinition("int", (Trait.Enum | Trait.Public)))); // Act + Assert string ts = UTF8(DeclarationFileGenerator.Emit(declaration)); ts.ShouldMatch(@"declare enum Foo\s+{\s+A,\s+B\s+}"); var config = new TypescriptGeneratorSettings(ns: "Foo"); ts = UTF8(DeclarationFileGenerator.Emit(config, declaration)); ts.ShouldMatch(@"declare namespace Foo\s+{\s+enum Foo\s+{\s+A,\s+B\s+}\s+}"); }
public CodeWriter(Stream stream, Encoding encoding, TypescriptGeneratorSettings settings) : base(stream, encoding) { _settings = settings; }