private static IEnumerable <ICodeGenerator> CreateGenerators( ClientGeneratorOptions options) { yield return(new ClassGenerator()); yield return(new InputClassGenerator()); yield return(new InputClassSerializerGenerator()); yield return(new InterfaceGenerator()); yield return(new ResultParserGenerator(options)); yield return(new OperationGenerator()); yield return(new ClientInterfaceGenerator()); yield return(new ClientClassGenerator()); yield return(new QueryGenerator()); yield return(new EnumGenerator()); yield return(new EnumValueSerializerGenerator(options.LanguageVersion)); if (options.EnableDISupport) { yield return(new ServicesGenerator()); } }
protected static async Task <string> WriteAllAsync( IReadOnlyCollection <ICodeDescriptor> descriptors, ITypeLookup typeLookup) { var options = new ClientGeneratorOptions(); var generators = new ICodeGenerator[] { new InterfaceGenerator(options), new ClassGenerator(options) }; using (var stream = new MemoryStream()) { using (var sw = new StreamWriter(stream, Encoding.UTF8)) { using (var cw = new CodeWriter(sw)) { foreach (ICodeGenerator generator in generators) { foreach (ICodeDescriptor descriptor in descriptors) { if (generator.CanHandle(descriptor)) { await generator.WriteAsync( cw, descriptor, typeLookup); await cw.WriteLineAsync(); } } } } } return(Encoding.UTF8.GetString(stream.ToArray())); } }
protected CodeGenerator(ClientGeneratorOptions options) { Options = options; ClientAccessModifier = options.ClientAccessModifier.ToString().ToLowerInvariant(); ModelAccessModifier = options.ModelAccessModifier.ToString().ToLowerInvariant(); }