Beispiel #1
0
 public static IJSValueWriter WriteArgs <T1, T2>(this IJSValueWriter writer, T1 arg1, T2 arg2)
 {
     writer.WriteArrayBegin();
     writer.WriteValue(arg1);
     writer.WriteValue(arg2);
     writer.WriteArrayEnd();
     return(writer);
 }
Beispiel #2
0
 public static IJSValueWriter WriteArgs <T1, T2, T3, T4, T5>(this IJSValueWriter writer,
                                                             T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
 {
     writer.WriteArrayBegin();
     writer.WriteValue(arg1);
     writer.WriteValue(arg2);
     writer.WriteValue(arg3);
     writer.WriteValue(arg4);
     writer.WriteValue(arg5);
     writer.WriteArrayEnd();
     return(writer);
 }
Beispiel #3
0
 public static void WriteValue <T1, T2>(this IJSValueWriter writer, Tuple <T1, T2> value)
 {
     if (value != null)
     {
         writer.WriteArrayBegin();
         writer.WriteValue(value.Item1);
         writer.WriteValue(value.Item2);
         writer.WriteArrayEnd();
     }
     else
     {
         writer.WriteNull();
     }
 }
Beispiel #4
0
 public static void WriteValue <T>(this IJSValueWriter writer, T?value) where T : struct
 {
     if (value.HasValue)
     {
         writer.WriteValue(value.Value);
     }
     else
     {
         writer.WriteNull();
     }
 }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
 public static void WriteValue <T1, T2, T3, T4, T5, T6, T7>(this IJSValueWriter writer, Tuple <T1, T2, T3, T4, T5, T6, T7> 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.WriteValue(value.Item6);
         writer.WriteValue(value.Item7);
         writer.WriteArrayEnd();
     }
     else
     {
         writer.WriteNull();
     }
 }
Beispiel #7
0
        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 RobotModel enum value. It could be generated instead.
 public static void WriteValue(this IJSValueWriter writer, RobotModel value)
 {
     writer.WriteValue((int)value);
 }
Beispiel #9
0
 public static void WriteObjectProperty <T>(this IJSValueWriter writer, string name, T value)
 {
     writer.WritePropertyName(name);
     writer.WriteValue(value);
 }
Beispiel #10
0
 public static void WriteValue <T>(this IJSValueWriter writer, T[] value)
 {
     writer.WriteValue(value as IEnumerable <T>);
 }
Beispiel #11
0
 public static void WriteValue <T>(this IJSValueWriter writer, IReadOnlyCollection <T> value)
 {
     writer.WriteValue(value as IEnumerable <T>);
 }
Beispiel #12
0
 public static void WriteValue <T>(this IJSValueWriter writer, IReadOnlyCollection <KeyValuePair <string, T> > value)
 {
     writer.WriteValue(value as IEnumerable <KeyValuePair <string, T> >);
 }
Beispiel #13
0
 public static void WriteValue <T>(this IJSValueWriter writer, IDictionary <string, T> value)
 {
     writer.WriteValue(value as IEnumerable <KeyValuePair <string, T> >);
 }