public string Stringify(GenericDesc contractDesc) { return ($@"{_jsDoc.Format(contractDesc)}{Export}interface I{_options.ContractNameTempate(contractDesc)}<{GenericargsStringify(contractDesc.Arguments)}> {{ {string.Join(Environment.NewLine + Environment.NewLine, contractDesc.Fields.Select((field) => Utils.Ident(_fieldStringify.Stringify(field), _options.IdentSize)))} }}"); }
public string WrapAll(string str, ContractGroup group) { // calculate all base classes and write union types to end of namespace var bases = string.Join( Environment.NewLine + Environment.NewLine, group.Groups.Values.ToArray() .SelectMany(_ => _) .Where(_ => (_ is ContractDesc cd) && cd.Base != null && !string.IsNullOrWhiteSpace(cd.Base.Name)) .GroupBy(_ => (_ as ContractDesc).Base.Name) .Select(_ => $@"export type I{_options.ContractNameTempate(new ContractDesc {Name = _.Key})} = {string.Join(Environment.NewLine, _.ToArray().Select(nestType => Utils.Ident($"| I{_options.ContractNameTempate(nestType)}", _options.IdentSize)))}")); return($@" {NamespaceOrModule} {{ {Utils.Ident(str, _options.IdentSize)} {Utils.Ident(bases, _options.IdentSize)} }} "); }
public string Stringify(ContractEnumDesc contractDesc) { return ($@"{_jsDoc.Format(contractDesc)}{Export}type I{_options.ContractNameTempate(contractDesc)} = {string.Join(Environment.NewLine, contractDesc.Values.Select(field => Utils.Ident(_enumFieldStringify.Stringify(field), _options.IdentSize)))}"); }