Example #1
0
        public static bool AllAssemblies(ConfigBase config, TextWriter w)
        {
            w.Write(GetHeader(config.AssemblyPaths, config.IncludeSpecialTypes));

            var typeCollection = new TypeCollection(config.GetTypeWriterTypeSelector());

            var wroteAnyTypes = WriteSpecialTypes(config.IncludeSpecialTypes, w, config);
            wroteAnyTypes |= WriteFiles(config.AssemblyPaths, w, config.TypeNotFoundErrorHandler, typeCollection, config.RegexFilter, config);
            return wroteAnyTypes;
        }
Example #2
0
        private static bool WriteSpecialTypes(bool includeSpecialTypes, TextWriter w, ConfigBase config)
        {
            if (!includeSpecialTypes)
                return false;

            w.NewLine();

            w.WriteLine(Resources.ToTypeScriptDSpecialTypes_d.Replace("    ", config.Indent));
            w.NewLine();
            w.NewLine();
            return true;
        }
Example #3
0
        private static bool WriteFiles(IEnumerable<string> assemblyPaths, TextWriter w, ITypeNotFoundErrorHandler typeNotFoundErrorHandler, TypeCollection typeCollection, string filterRegex, ConfigBase config)
        {
            var filesAlreadyProcessed = new HashSet<string>(new IgnoreCaseStringEqualityComparer());
            if (!assemblyPaths.Any())
                return false;

            assemblyPaths.Each(assemblyPath =>
            {
                if (filesAlreadyProcessed.Contains(assemblyPath))
                    return;

                filesAlreadyProcessed.Add(assemblyPath);
                CollectTypes(assemblyPath, typeNotFoundErrorHandler, typeCollection, config);
            });

            var renderedOut = typeCollection.Render(filterRegex);
            w.WriteLine(renderedOut);

            return true;
        }
Example #4
0
 public static string FullAssembly(string assemblyPath, TypeCollection typeCollection, ConfigBase config)
 {
     CollectTypes(assemblyPath, config.TypeNotFoundErrorHandler, typeCollection, config);
     return GetHeader(new[] { assemblyPath }, config.IncludeSpecialTypes) + typeCollection.Render(config.RegexFilter);
 }
Example #5
0
        private static void CollectTypes(string assemblyPath, ITypeNotFoundErrorHandler typeNotFoundErrorHandler, TypeCollection typeCollection, ConfigBase config)
        {
            var assembly = Mono.Cecil.AssemblyDefinition.ReadAssembly(assemblyPath);

            typeCollection.AddAssembly(assembly);

            var typeWriterGenerator = new TypeWriterCollector(typeNotFoundErrorHandler, typeCollection.TypeSelector);
            foreach (var item in assembly.MainModule.Types)
            {
                typeWriterGenerator.Collect(item, typeCollection, config);
            }
        }