You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: proposals/0011-introduce-reactNativeMeta.md
+33-33Lines changed: 33 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,48 +23,48 @@ This is how this section would look like...
23
23
24
24
```json
25
25
{
26
-
"name": "@rnx-kit/metro-serializer",
27
-
"version": "1.0.11",
28
-
...,
29
-
"reactNativeMeta": {
30
-
"version": "2.3",
31
-
"type": "library",
32
-
"features": {
33
-
"fabric": "true",
26
+
"name": "@rnx-kit/metro-serializer",
27
+
"version": "1.0.11",
28
+
...,
29
+
"reactNativeMeta": {
30
+
"version": "2.3",
31
+
"type": "library",
32
+
"features": {
33
+
"fabric": "true",
34
34
"android": {
35
35
"turbomodules": "true",
36
-
},
37
-
},
38
-
"requirements": {
39
-
"react-native": ">= 0.71.0",
40
-
"expo": ">= 46.0.0",
41
-
"expo-modules-core": "1.2.0"
36
+
},
37
+
},
38
+
"requirements": {
39
+
"react-native": ">= 0.71.0",
40
+
"expo": ">= 46.0.0",
41
+
"expo-modules-core": "1.2.0"
42
+
}
42
43
}
43
-
...
44
44
}
45
45
```
46
46
47
47
...for an app:
48
48
49
49
```json
50
50
{
51
-
"name": "contoso",
52
-
"version": "2.0.3",
53
-
...,
54
-
"reactNativeMeta": {
51
+
"name": "contoso",
52
+
"version": "2.0.3",
53
+
...,
54
+
"reactNativeMeta": {
55
55
"version": "1.0",
56
56
"type": "app",
57
57
"features": {
58
-
"newArchEnabled": "true",
59
-
"android": {
60
-
"codegen": "true",
61
-
"turbomodules": "true",
62
-
},
63
-
// Future example
64
-
// "metroExportsMode": "strict"
58
+
"newArchEnabled": "true",
59
+
"android": {
60
+
"codegen": "true",
61
+
"turbomodules": "true",
62
+
},
63
+
// Future example
64
+
// "metroExportsMode": "strict"
65
65
},
66
66
...
67
-
}
67
+
}
68
68
```
69
69
70
70
## Motivation
@@ -97,18 +97,18 @@ reactNativeMeta: {
97
97
features: {
98
98
// can be global...
99
99
newArchEnabled: boolean,
100
-
hermesEnabled: boolean,
100
+
jsEngine: string, // ex. "hermes", "jsc", "V8"...
101
101
// ...or platform specific
102
102
android: {
103
103
newArchEnabled: boolean,
104
104
fabric: boolean,
105
105
turbomodules: boolean,
106
-
hermesEnabled: boolean,
106
+
jsEngine: string,
107
107
},
108
-
ios: {
108
+
iOs: {
109
109
... // same as android
110
110
},
111
-
macos: {
111
+
macOs: {
112
112
... // same as android
113
113
},
114
114
windows: {
@@ -118,7 +118,7 @@ reactNativeMeta: {
118
118
},
119
119
// this section would most likely only be relevant for libraries
120
120
requirements: {
121
-
react-native: string, // semver compliant range of versions of RN supported
121
+
"react-native": string, // semver compliant range of versions of RN supported
122
122
expo: string, // semver compliant range of versions of Expo supported (if any)
123
123
}
124
124
}
@@ -130,7 +130,7 @@ The main drawback is that we'd need to convince developers to start using it, so
130
130
131
131
## Alternatives
132
132
133
-
This section is, in itself, fully original and new: there are other files that are used to define configurations for various aspect of react-native based projects (such as `react-native.config.js`, `app.json`, Expo's `app.config.js`, `expo-module.config.json`) but by design this section does **not** overlap with any of them. Explicitly, this one has the purpose of being filled only with metadata to be read by package managers and other tools.
133
+
`reactNativeMeta`is, by design, fully original and new: there are other files that are used to define configurations for various aspect of react-native based projects (such as `react-native.config.js`, `app.json`, Expo's `app.config.js`, `expo-module.config.json`) but this one does **not** overlap with any of them. Explicitly, this one has the purpose of being filled only with metadata to be read by package managers and other tools.
0 commit comments