Skip to content

Commit 20c72db

Browse files
authored
Merge pull request #174 from shreyaspadhye3011/CodegenUpdate
Reorder TS enums to work around babel bug
2 parents 73c8d7c + e683b43 commit 20c72db

File tree

9 files changed

+311
-276
lines changed

9 files changed

+311
-276
lines changed

package/CHANGELOG.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
11
{
22
"name": "react-native-xaml",
33
"entries": [
4+
{
5+
"date": "Thu, 27 Jan 2022 14:11:26 GMT",
6+
"tag": "react-native-xaml_v0.0.59",
7+
"version": "0.0.59",
8+
"comments": {
9+
"patch": [
10+
{
11+
"author": "[email protected]",
12+
"package": "react-native-xaml",
13+
"comment": "Reorder TS enums to work around babel bug",
14+
"commit": "5a820424140912701aeb8fdafb0efd0410d3e5b3"
15+
}
16+
]
17+
}
18+
},
419
{
520
"date": "Wed, 26 Jan 2022 23:21:29 GMT",
621
"tag": "react-native-xaml_v0.0.58",

package/CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
# Change Log - react-native-xaml
22

3-
This log was last generated on Wed, 26 Jan 2022 23:21:29 GMT and should not be manually modified.
3+
This log was last generated on Thu, 27 Jan 2022 14:11:26 GMT and should not be manually modified.
44

55
<!-- Start content -->
66

7+
## 0.0.59
8+
9+
Thu, 27 Jan 2022 14:11:26 GMT
10+
11+
### Patches
12+
13+
- Reorder TS enums to work around babel bug ([email protected])
14+
715
## 0.0.58
816

917
Wed, 26 Jan 2022 23:21:29 GMT

package/Codegen/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ private void DumpTypes(Version version)
320320
eventArgProps.AddRange(propsToAdd);
321321
foreach (var p in propsToAdd.Where(p => p.Property.GetPropertyType().IsEnum).Select(p => p.Property.GetPropertyType()))
322322
{
323-
Util.enumsToGenerateConvertersFor.Add(p);
323+
Util.VisitEnum(p);
324324
}
325325
}
326326

package/Codegen/TSEnums.cs

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// ------------------------------------------------------------------------------
22
// <auto-generated>
33
// This code was generated by a tool.
4-
// Runtime Version: 17.0.0.0
4+
// Runtime Version: 16.0.0.0
55
//
66
// Changes to this file may cause incorrect behavior and will be lost if
77
// the code is regenerated.
@@ -18,8 +18,8 @@ namespace Codegen
1818
/// Class to produce the template output
1919
/// </summary>
2020

21-
#line 1 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
22-
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
21+
#line 1 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
22+
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "16.0.0.0")]
2323
public partial class TSEnums : TSEnumsBase
2424
{
2525
#line hidden
@@ -32,127 +32,129 @@ public virtual string TransformText()
3232
"UTOMATICALLY GENERATED, DO NOT MODIFY MANUALLY\r\n********************************" +
3333
"******************************/\r\n\r\n");
3434

35-
#line 11 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
36-
foreach (var enumType in Util.enumsToGenerateConvertersFor) {
35+
#line 11 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
36+
37+
var enumsToGenerateConvertersFor = Util.GetEnums();
38+
foreach (var enumType in enumsToGenerateConvertersFor) {
3739
var ns = Util.GetTSNamespace(enumType);
3840
if (ns != "") {
3941

4042
#line default
4143
#line hidden
4244
this.Write("export namespace ");
4345

44-
#line 14 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
46+
#line 16 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
4547
this.Write(this.ToStringHelper.ToStringWithCulture(ns));
4648

4749
#line default
4850
#line hidden
4951
this.Write("Enums {\r\n");
5052

51-
#line 15 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
53+
#line 17 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
5254
}
5355

5456
#line default
5557
#line hidden
5658
this.Write("export enum ");
5759

58-
#line 16 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
60+
#line 18 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
5961
this.Write(this.ToStringHelper.ToStringWithCulture(Util.ToJsName(enumType)));
6062

6163
#line default
6264
#line hidden
6365
this.Write(" {\r\n");
6466

65-
#line 17 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
67+
#line 19 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
6668
foreach (var value in enumType.GetFields().Skip(1)) {
6769

6870
#line default
6971
#line hidden
7072
this.Write(" ");
7173

72-
#line 18 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
74+
#line 20 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
7375
this.Write(this.ToStringHelper.ToStringWithCulture(value.GetName()));
7476

7577
#line default
7678
#line hidden
7779
this.Write(" = ");
7880

79-
#line 18 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
81+
#line 20 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
8082
this.Write(this.ToStringHelper.ToStringWithCulture((int)value.GetConstantValue(out System.Reflection.Metadata.ConstantTypeCode typeCode)));
8183

8284
#line default
8385
#line hidden
8486
this.Write(",\r\n");
8587

86-
#line 19 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
88+
#line 21 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
8789
}
8890

8991
#line default
9092
#line hidden
9193
this.Write("}\r\n");
9294

93-
#line 20 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
95+
#line 22 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
9496
if (ns != "") {
9597

9698
#line default
9799
#line hidden
98100
this.Write("}\r\n\r\n");
99101

100-
#line 23 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
102+
#line 25 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
101103
}
102104

103105
#line default
104106
#line hidden
105107

106-
#line 24 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
108+
#line 26 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
107109
}
108110

109111
#line default
110112
#line hidden
111113
this.Write("\r\n\r\n");
112114

113-
#line 27 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
115+
#line 29 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
114116
foreach (var enumType in Util.fakeEnums) {
115117

116118
#line default
117119
#line hidden
118120
this.Write("export enum ");
119121

120-
#line 28 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
122+
#line 30 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
121123
this.Write(this.ToStringHelper.ToStringWithCulture(enumType.Name));
122124

123125
#line default
124126
#line hidden
125127
this.Write(" {\r\n");
126128

127-
#line 29 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
129+
#line 31 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
128130
foreach (var value in enumType.Values) {
129131

130132
#line default
131133
#line hidden
132134
this.Write(" ");
133135

134-
#line 30 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
136+
#line 32 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
135137
this.Write(this.ToStringHelper.ToStringWithCulture(value.Key));
136138

137139
#line default
138140
#line hidden
139141
this.Write(" = ");
140142

141-
#line 30 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
143+
#line 32 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
142144
this.Write(this.ToStringHelper.ToStringWithCulture(value.Value));
143145

144146
#line default
145147
#line hidden
146148
this.Write(",\r\n");
147149

148-
#line 31 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
150+
#line 33 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
149151
}
150152

151153
#line default
152154
#line hidden
153155
this.Write("}\r\n\r\n");
154156

155-
#line 34 "C:\Users\asklar\source\repos\react-native-xaml\package\Codegen\TSEnums.tt"
157+
#line 36 "C:\react-native-xaml\package\Codegen\TSEnums.tt"
156158
}
157159

158160
#line default
@@ -167,7 +169,7 @@ public virtual string TransformText()
167169
/// <summary>
168170
/// Base class for this transformation
169171
/// </summary>
170-
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
172+
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "16.0.0.0")]
171173
public class TSEnumsBase
172174
{
173175
#region Fields

package/Codegen/TSEnums.tt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT MODIFY MANUALLY
99
**************************************************************/
1010

11-
<# foreach (var enumType in Util.enumsToGenerateConvertersFor) {
11+
<#
12+
var enumsToGenerateConvertersFor = Util.GetEnums();
13+
foreach (var enumType in enumsToGenerateConvertersFor) {
1214
var ns = Util.GetTSNamespace(enumType);
1315
if (ns != "") { #>
1416
export namespace <#= ns #>Enums {

package/Codegen/Util.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,15 @@ public static string GetCppWinRTType(MrType t)
159159

160160

161161
public static HashSet<FakeEnum> fakeEnums = new HashSet<FakeEnum>();
162-
public static HashSet<MrType> enumsToGenerateConvertersFor = new HashSet<MrType>();
162+
private static HashSet<MrType> enumsToGenerateConvertersFor = new ();
163+
public static IReadOnlyList<MrType> GetEnums() {
164+
return enumsToGenerateConvertersFor.OrderBy(e => Util.GetTSNamespace(e)).ToImmutableList();
165+
}
166+
167+
public static void VisitEnum(MrType t) {
168+
enumsToGenerateConvertersFor.Add(t);
169+
}
170+
163171

164172
public static MrLoadContext LoadContext { get; internal set; }
165173

@@ -196,7 +204,7 @@ private static ViewManagerPropertyType GetVMPropertyType(MrType propType)
196204
{
197205
if (propType.IsEnum)
198206
{
199-
enumsToGenerateConvertersFor.Add(propType);
207+
VisitEnum(propType);
200208
return ViewManagerPropertyType.Number;
201209
}
202210
else if (propType.IsArray)

package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "react-native-xaml",
33
"title": "React Native Xaml",
4-
"version": "0.0.58",
4+
"version": "0.0.59",
55
"description": "Allows using XAML directly, inside of a React Native Windows app",
66
"main": "lib/index.js",
77
"typings": "lib/index.d.ts",

0 commit comments

Comments
 (0)