Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }