public void Write(IKeyboard keyboard, TsEnum tsEnum) { keyboard.Write(tsEnum.ExportKind) .Type("enum ", tsEnum.Name, " "); using (keyboard.Block()) { foreach (var tsEnumValue in tsEnum.Values) { using (keyboard.Line()) { keyboard.Type(tsEnumValue.Name, " = "); switch (tsEnumValue) { case TsEnumNumberValue numberValue: keyboard.Write(numberValue.Value); break; case TsEnumStringValue stringValue: keyboard.Write(stringValue.Value); break; default: throw new ArgumentOutOfRangeException(nameof(tsEnumValue), tsEnumValue, null); } keyboard.Type(","); } } } keyboard.NewLine(); }
private void Write(IKeyboard keyboard, TsObjectType tsObjectType) { using (keyboard.Block()) { foreach (var tsTypeMember in tsObjectType.Members) { switch (tsTypeMember) { case TsIndexSignature tsIndexSignature: keyboard.Indent() .Type("[key: ") .Write(tsIndexSignature.IndexType) .Type("]: ") .Write(tsIndexSignature.ValueType) .Type(";"); break; default: throw new ArgumentOutOfRangeException(nameof(tsTypeMember), tsTypeMember.GetType().Name, null); } } } }
public void Write(IKeyboard keyboard, TsInterface tsInterface) { keyboard.Write(tsInterface.ExportKind) .Type("interface ", tsInterface.Name); if (tsInterface.TypeParameters.Any()) { keyboard.Type("<"); for (var i = 0; i < tsInterface.TypeParameters.Length; i++) { keyboard.Type(tsInterface.TypeParameters[i]); if (i != tsInterface.TypeParameters.Length - 1) { keyboard.Type(", "); } } keyboard.Type(">"); } keyboard.Type(" "); if (tsInterface.Base.Any()) { keyboard.Type("extends "); for (var i = 0; i < tsInterface.Base.Length; i++) { keyboard.Write(tsInterface.Base[i]); if (i != tsInterface.Base.Length - 1) { keyboard.Type(", "); } } keyboard.Type(" "); } using (keyboard.Block()) { foreach (var tsInterfaceProperty in tsInterface .Properties.OfType <TsPropertySignature>()) { using (keyboard.Line()) { keyboard.Type(tsInterfaceProperty.Name); if (tsInterfaceProperty.Optional) { keyboard.Type("?"); } keyboard.Type(": ") .Write(tsInterfaceProperty.Type) .Type(";"); } } } keyboard.NewLine(); }
public void Write(IKeyboard keyboard, TsNamespace tsNamespace) { keyboard.Write(tsNamespace.ExportKind) .Type("namespace ", tsNamespace.Name, " "); using (keyboard.Block()) { var declarations = tsNamespace.Declarations.ToArray(); for (var i = 0; i < declarations.Length; i++) { keyboard.Write(declarations[i]); if (i != declarations.Length - 1) { keyboard.NewLine(); } } } keyboard.NewLine(); }
public void Write(IKeyboard keyboard, TsFunction tsFunction) { keyboard.Write(tsFunction.ExportKind) .Type("function ") .Write(new TsIdentifier(tsFunction.Name)) .Type("("); var parameters = tsFunction.Parameters.ToArray(); for (var i = 0; i < parameters.Length; i++) { var parameter = parameters[i]; keyboard.Type(parameter.Name, ": ") .Write(parameter.Type); if (i != parameters.Length - 1) { keyboard.Type(", "); } } keyboard.Type(")"); if (tsFunction.ReturnType != null) { keyboard.Type(": ") .Write(tsFunction.ReturnType); } keyboard.Type(" "); using (keyboard.Block()) { var bodyLines = tsFunction.Body.Split(new[] { Environment.NewLine }, StringSplitOptions.None); foreach (var bodyLine in bodyLines) { using (keyboard.Line()) keyboard.Type(bodyLine); } } keyboard.NewLine(); }