public static void WriteValue <T>(this IJSValueWriter writer, T?value) where T : struct { if (value.HasValue) { writer.WriteValue(value.Value); } else { writer.WriteNull(); } }
public static void WriteValue <T1>(this IJSValueWriter writer, Tuple <T1> value) { if (value != null) { writer.WriteArrayBegin(); writer.WriteValue(value.Item1); writer.WriteArrayEnd(); } else { writer.WriteNull(); } }
public static void WriteValue <T>(this IJSValueWriter writer, IEnumerable <KeyValuePair <string, T> > value) { if (value != null) { writer.WriteObjectBegin(); foreach (var pair in value) { writer.WriteObjectProperty(pair.Key, pair.Value); } writer.WriteObjectEnd(); } else { writer.WriteNull(); } }
public static void WriteValue <T1, T2, T3, T4, T5>(this IJSValueWriter writer, Tuple <T1, T2, T3, T4, T5> value) { if (value != null) { writer.WriteArrayBegin(); writer.WriteValue(value.Item1); writer.WriteValue(value.Item2); writer.WriteValue(value.Item3); writer.WriteValue(value.Item4); writer.WriteValue(value.Item5); writer.WriteArrayEnd(); } else { writer.WriteNull(); } }
public static void WriteValue <T>(this IJSValueWriter writer, IEnumerable <T> value) { if (value != null) { writer.WriteArrayBegin(); foreach (var item in value) { writer.WriteValue(item); } writer.WriteArrayEnd(); } else { writer.WriteNull(); } }
public void WriteTo(IJSValueWriter writer) { switch (Type) { case JSValueType.Null: writer.WriteNull(); break; case JSValueType.Object: WriteObject(writer, Object); break; case JSValueType.Array: WriteArray(writer, Array); break; case JSValueType.String: writer.WriteString(String); break; case JSValueType.Boolean: writer.WriteBoolean(Boolean); break; case JSValueType.Int64: writer.WriteInt64(Int64); break; case JSValueType.Double: writer.WriteDouble(Double); break; } }
public static void WriteError( IJSValueWriter writer, string code, string message, IReadOnlyDictionary <string, JSValue> userInfo, string stackTrace) { writer.WriteArrayBegin(); { writer.WriteObjectBegin(); { writer.WritePropertyName(ReactErrorConstants.Code); writer.WriteString(code ?? ReactErrorConstants.DefaultCode); writer.WritePropertyName(ReactErrorConstants.Message); writer.WriteString(message ?? ReactErrorConstants.DefaultMessage); // For consistency with iOS ensure userInfo key exists, even if we null it. // iOS: /React/Base/RCTUtils.m -> RCTJSErrorFromCodeMessageAndNSError writer.WritePropertyName(ReactErrorConstants.UserInfo); if (userInfo == null) { writer.WriteNull(); } else { writer.WriteValue(userInfo); } // Attach a nativeStackWindows string if an exception was passed. // This matches iOS behavior - iOS adds a `nativeStackIOS` property // iOS: /React/Base/RCTUtils.m -> RCTJSErrorFromCodeMessageAndNSError writer.WritePropertyName(ReactErrorConstants.NativeStack); writer.WriteString(stackTrace ?? string.Empty); } writer.WriteObjectEnd(); } writer.WriteArrayEnd(); }
// Writing RobotInfo value. It could be generated instead. public static void WriteValue(this IJSValueWriter writer, RobotInfo value) { if (value != null) { writer.WriteObjectBegin(); writer.WriteObjectProperty(nameof(value.Model), value.Model); writer.WriteObjectProperty(nameof(value.Name), value.Name); writer.WriteObjectProperty(nameof(value.Age), value.Age); writer.WriteObjectProperty(nameof(value.Shape), value.Shape); writer.WriteObjectProperty(nameof(value.Shape2), value.Shape2); writer.WriteObjectProperty(nameof(value.Shape3), value.Shape3); writer.WriteObjectProperty(nameof(value.Steps), value.Steps); writer.WriteObjectProperty(nameof(value.Dimensions), value.Dimensions); writer.WriteObjectProperty(nameof(value.Badges), value.Badges); writer.WriteObjectProperty(nameof(value.Tools), value.Tools); writer.WriteObjectProperty(nameof(value.Path), value.Path); writer.WriteObjectProperty(nameof(value.Extra), value.Extra); writer.WriteObjectEnd(); } else { writer.WriteNull(); } }
public static void WriteValue(this IJSValueWriter writer, JSValue.Void _) { writer.WriteNull(); }