@react-native/codegen 0.78.0-nightly-20241201-91e217ff5 → 0.78.0-nightly-20241203-bfc8b3391

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -327,7 +327,7 @@ export interface NativeModuleBooleanTypeAnnotation {
327
327
 
328
328
  export type NativeModuleEnumMember = {
329
329
  readonly name: string;
330
- readonly value: string | number;
330
+ readonly value: NativeModuleStringLiteralTypeAnnotation | NativeModuleNumberLiteralTypeAnnotation,
331
331
  };
332
332
 
333
333
  export type NativeModuleEnumMemberType =
@@ -311,7 +311,7 @@ export type NativeModuleNumberTypeAnnotation = $ReadOnly<{
311
311
 
312
312
  export type NativeModuleEnumMember = {
313
313
  name: string,
314
- value: string | number,
314
+ value: StringLiteralTypeAnnotation | NumberLiteralTypeAnnotation,
315
315
  };
316
316
 
317
317
  export type NativeModuleEnumMemberType =
@@ -140,7 +140,7 @@ function combineSchemasInFileListAndWriteToFile(
140
140
  exclude,
141
141
  ) {
142
142
  const combined = combineSchemasInFileList(fileList, platform, exclude);
143
- const formattedSchema = JSON.stringify(combined, null, 2);
143
+ const formattedSchema = JSON.stringify(combined);
144
144
  fs.writeFileSync(outfile, formattedSchema);
145
145
  }
146
146
  module.exports = {
@@ -96,7 +96,7 @@ function combineSchemasInFileListAndWriteToFile(
96
96
  exclude: ?RegExp,
97
97
  ): void {
98
98
  const combined = combineSchemasInFileList(fileList, platform, exclude);
99
- const formattedSchema = JSON.stringify(combined, null, 2);
99
+ const formattedSchema = JSON.stringify(combined);
100
100
  fs.writeFileSync(outfile, formattedSchema);
101
101
  }
102
102
 
@@ -67,11 +67,7 @@ for (const file of schemaFiles) {
67
67
  }
68
68
  fs.writeFileSync(
69
69
  output,
70
- JSON.stringify(
71
- {
72
- modules,
73
- },
74
- null,
75
- 2,
76
- ),
70
+ JSON.stringify({
71
+ modules,
72
+ }),
77
73
  );
@@ -84,4 +84,4 @@ for (const file of schemaFiles) {
84
84
  }
85
85
  }
86
86
 
87
- fs.writeFileSync(output, JSON.stringify({modules}, null, 2));
87
+ fs.writeFileSync(output, JSON.stringify({modules}));
@@ -429,12 +429,17 @@ struct Bridging<${enumName}> {
429
429
  }
430
430
  };`;
431
431
  };
432
+ function getMemberValueAppearance(member) {
433
+ if (member.type === 'StringLiteralTypeAnnotation') {
434
+ return `"${member.value}"`;
435
+ } else {
436
+ return member.value;
437
+ }
438
+ }
432
439
  function generateEnum(hasteModuleName, origEnumName, members, memberType) {
433
440
  const enumName = getEnumName(hasteModuleName, origEnumName);
434
441
  const nativeEnumMemberType =
435
442
  memberType === 'StringTypeAnnotation' ? 'std::string' : 'int32_t';
436
- const getMemberValueAppearance = value =>
437
- memberType === 'StringTypeAnnotation' ? `"${value}"` : `${value}`;
438
443
  const fromCases =
439
444
  members
440
445
  .map(
@@ -406,6 +406,14 @@ struct Bridging<${enumName}> {
406
406
  };`;
407
407
  };
408
408
 
409
+ function getMemberValueAppearance(member: NativeModuleEnumMember['value']) {
410
+ if (member.type === 'StringLiteralTypeAnnotation') {
411
+ return `"${member.value}"`;
412
+ } else {
413
+ return member.value;
414
+ }
415
+ }
416
+
409
417
  function generateEnum(
410
418
  hasteModuleName: string,
411
419
  origEnumName: string,
@@ -417,9 +425,6 @@ function generateEnum(
417
425
  const nativeEnumMemberType: NativeEnumMemberValueType =
418
426
  memberType === 'StringTypeAnnotation' ? 'std::string' : 'int32_t';
419
427
 
420
- const getMemberValueAppearance = (value: string | number) =>
421
- memberType === 'StringTypeAnnotation' ? `"${value}"` : `${value}`;
422
-
423
428
  const fromCases =
424
429
  members
425
430
  .map(
@@ -159,11 +159,17 @@ const SIMPLE_NATIVE_MODULES = {
159
159
  members: [
160
160
  {
161
161
  name: 'ONE',
162
- value: '1',
162
+ value: {
163
+ type: 'NumberLiteralTypeAnnotation',
164
+ value: 1,
165
+ },
163
166
  },
164
167
  {
165
168
  name: 'TWO',
166
- value: '2',
169
+ value: {
170
+ type: 'NumberLiteralTypeAnnotation',
171
+ value: 2,
172
+ },
167
173
  },
168
174
  ],
169
175
  },
@@ -174,15 +180,24 @@ const SIMPLE_NATIVE_MODULES = {
174
180
  members: [
175
181
  {
176
182
  name: 'POINT_ZERO',
177
- value: '0.0',
183
+ value: {
184
+ type: 'NumberLiteralTypeAnnotation',
185
+ value: 0.0,
186
+ },
178
187
  },
179
188
  {
180
189
  name: 'POINT_ONE',
181
- value: '0.1',
190
+ value: {
191
+ type: 'NumberLiteralTypeAnnotation',
192
+ value: 0.1,
193
+ },
182
194
  },
183
195
  {
184
196
  name: 'POINT_TWO',
185
- value: '0.2',
197
+ value: {
198
+ type: 'NumberLiteralTypeAnnotation',
199
+ value: 0.2,
200
+ },
186
201
  },
187
202
  ],
188
203
  },
@@ -193,11 +208,17 @@ const SIMPLE_NATIVE_MODULES = {
193
208
  members: [
194
209
  {
195
210
  name: 'HELLO',
196
- value: 'hello',
211
+ value: {
212
+ type: 'StringLiteralTypeAnnotation',
213
+ value: 'hello',
214
+ },
197
215
  },
198
216
  {
199
217
  name: 'GoodBye',
200
- value: 'goodbye',
218
+ value: {
219
+ type: 'StringLiteralTypeAnnotation',
220
+ value: 'goodbye',
221
+ },
201
222
  },
202
223
  ],
203
224
  },
@@ -1916,11 +1937,17 @@ const CXX_ONLY_NATIVE_MODULES = {
1916
1937
  members: [
1917
1938
  {
1918
1939
  name: 'IA',
1919
- value: '23',
1940
+ value: {
1941
+ type: 'NumberLiteralTypeAnnotation',
1942
+ value: 23,
1943
+ },
1920
1944
  },
1921
1945
  {
1922
1946
  name: 'IB',
1923
- value: '42',
1947
+ value: {
1948
+ type: 'NumberLiteralTypeAnnotation',
1949
+ value: 42,
1950
+ },
1924
1951
  },
1925
1952
  ],
1926
1953
  },
@@ -1931,11 +1958,17 @@ const CXX_ONLY_NATIVE_MODULES = {
1931
1958
  members: [
1932
1959
  {
1933
1960
  name: 'FA',
1934
- value: '1.23',
1961
+ value: {
1962
+ type: 'NumberLiteralTypeAnnotation',
1963
+ value: 1.23,
1964
+ },
1935
1965
  },
1936
1966
  {
1937
1967
  name: 'FB',
1938
- value: '4.56',
1968
+ value: {
1969
+ type: 'NumberLiteralTypeAnnotation',
1970
+ value: 4.56,
1971
+ },
1939
1972
  },
1940
1973
  ],
1941
1974
  },
@@ -1946,11 +1979,17 @@ const CXX_ONLY_NATIVE_MODULES = {
1946
1979
  members: [
1947
1980
  {
1948
1981
  name: 'NA',
1949
- value: 'NA',
1982
+ value: {
1983
+ type: 'StringLiteralTypeAnnotation',
1984
+ value: 'NA',
1985
+ },
1950
1986
  },
1951
1987
  {
1952
1988
  name: 'NB',
1953
- value: 'NB',
1989
+ value: {
1990
+ type: 'StringLiteralTypeAnnotation',
1991
+ value: 'NB',
1992
+ },
1954
1993
  },
1955
1994
  ],
1956
1995
  },
@@ -1961,11 +2000,17 @@ const CXX_ONLY_NATIVE_MODULES = {
1961
2000
  members: [
1962
2001
  {
1963
2002
  name: 'SA',
1964
- value: 's---a',
2003
+ value: {
2004
+ type: 'StringLiteralTypeAnnotation',
2005
+ value: 's---a',
2006
+ },
1965
2007
  },
1966
2008
  {
1967
2009
  name: 'SB',
1968
- value: 's---b',
2010
+ value: {
2011
+ type: 'StringLiteralTypeAnnotation',
2012
+ value: 's---b',
2013
+ },
1969
2014
  },
1970
2015
  ],
1971
2016
  },
@@ -163,11 +163,17 @@ const SIMPLE_NATIVE_MODULES: SchemaType = {
163
163
  members: [
164
164
  {
165
165
  name: 'ONE',
166
- value: '1',
166
+ value: {
167
+ type: 'NumberLiteralTypeAnnotation',
168
+ value: 1,
169
+ },
167
170
  },
168
171
  {
169
172
  name: 'TWO',
170
- value: '2',
173
+ value: {
174
+ type: 'NumberLiteralTypeAnnotation',
175
+ value: 2,
176
+ },
171
177
  },
172
178
  ],
173
179
  },
@@ -178,15 +184,24 @@ const SIMPLE_NATIVE_MODULES: SchemaType = {
178
184
  members: [
179
185
  {
180
186
  name: 'POINT_ZERO',
181
- value: '0.0',
187
+ value: {
188
+ type: 'NumberLiteralTypeAnnotation',
189
+ value: 0.0,
190
+ },
182
191
  },
183
192
  {
184
193
  name: 'POINT_ONE',
185
- value: '0.1',
194
+ value: {
195
+ type: 'NumberLiteralTypeAnnotation',
196
+ value: 0.1,
197
+ },
186
198
  },
187
199
  {
188
200
  name: 'POINT_TWO',
189
- value: '0.2',
201
+ value: {
202
+ type: 'NumberLiteralTypeAnnotation',
203
+ value: 0.2,
204
+ },
190
205
  },
191
206
  ],
192
207
  },
@@ -197,11 +212,17 @@ const SIMPLE_NATIVE_MODULES: SchemaType = {
197
212
  members: [
198
213
  {
199
214
  name: 'HELLO',
200
- value: 'hello',
215
+ value: {
216
+ type: 'StringLiteralTypeAnnotation',
217
+ value: 'hello',
218
+ },
201
219
  },
202
220
  {
203
221
  name: 'GoodBye',
204
- value: 'goodbye',
222
+ value: {
223
+ type: 'StringLiteralTypeAnnotation',
224
+ value: 'goodbye',
225
+ },
205
226
  },
206
227
  ],
207
228
  },
@@ -1926,11 +1947,17 @@ const CXX_ONLY_NATIVE_MODULES: SchemaType = {
1926
1947
  members: [
1927
1948
  {
1928
1949
  name: 'IA',
1929
- value: '23',
1950
+ value: {
1951
+ type: 'NumberLiteralTypeAnnotation',
1952
+ value: 23,
1953
+ },
1930
1954
  },
1931
1955
  {
1932
1956
  name: 'IB',
1933
- value: '42',
1957
+ value: {
1958
+ type: 'NumberLiteralTypeAnnotation',
1959
+ value: 42,
1960
+ },
1934
1961
  },
1935
1962
  ],
1936
1963
  },
@@ -1941,11 +1968,17 @@ const CXX_ONLY_NATIVE_MODULES: SchemaType = {
1941
1968
  members: [
1942
1969
  {
1943
1970
  name: 'FA',
1944
- value: '1.23',
1971
+ value: {
1972
+ type: 'NumberLiteralTypeAnnotation',
1973
+ value: 1.23,
1974
+ },
1945
1975
  },
1946
1976
  {
1947
1977
  name: 'FB',
1948
- value: '4.56',
1978
+ value: {
1979
+ type: 'NumberLiteralTypeAnnotation',
1980
+ value: 4.56,
1981
+ },
1949
1982
  },
1950
1983
  ],
1951
1984
  },
@@ -1956,11 +1989,17 @@ const CXX_ONLY_NATIVE_MODULES: SchemaType = {
1956
1989
  members: [
1957
1990
  {
1958
1991
  name: 'NA',
1959
- value: 'NA',
1992
+ value: {
1993
+ type: 'StringLiteralTypeAnnotation',
1994
+ value: 'NA',
1995
+ },
1960
1996
  },
1961
1997
  {
1962
1998
  name: 'NB',
1963
- value: 'NB',
1999
+ value: {
2000
+ type: 'StringLiteralTypeAnnotation',
2001
+ value: 'NB',
2002
+ },
1964
2003
  },
1965
2004
  ],
1966
2005
  },
@@ -1971,11 +2010,17 @@ const CXX_ONLY_NATIVE_MODULES: SchemaType = {
1971
2010
  members: [
1972
2011
  {
1973
2012
  name: 'SA',
1974
- value: 's---a',
2013
+ value: {
2014
+ type: 'StringLiteralTypeAnnotation',
2015
+ value: 's---a',
2016
+ },
1975
2017
  },
1976
2018
  {
1977
2019
  name: 'SB',
1978
- value: 's---b',
2020
+ value: {
2021
+ type: 'StringLiteralTypeAnnotation',
2022
+ value: 's---b',
2023
+ },
1979
2024
  },
1980
2025
  ],
1981
2026
  },
@@ -210,16 +210,30 @@ class FlowParser {
210
210
  }
211
211
  parseEnumMembers(typeAnnotation) {
212
212
  return typeAnnotation.members.map(member => {
213
- var _member$init$value, _member$init;
213
+ var _member$init, _member$init2;
214
+ const value =
215
+ typeof ((_member$init = member.init) === null || _member$init === void 0
216
+ ? void 0
217
+ : _member$init.value) === 'number'
218
+ ? {
219
+ type: 'NumberLiteralTypeAnnotation',
220
+ value: member.init.value,
221
+ }
222
+ : typeof ((_member$init2 = member.init) === null ||
223
+ _member$init2 === void 0
224
+ ? void 0
225
+ : _member$init2.value) === 'string'
226
+ ? {
227
+ type: 'StringLiteralTypeAnnotation',
228
+ value: member.init.value,
229
+ }
230
+ : {
231
+ type: 'StringLiteralTypeAnnotation',
232
+ value: member.id.name,
233
+ };
214
234
  return {
215
235
  name: member.id.name,
216
- value:
217
- (_member$init$value =
218
- (_member$init = member.init) === null || _member$init === void 0
219
- ? void 0
220
- : _member$init.value) !== null && _member$init$value !== void 0
221
- ? _member$init$value
222
- : member.id.name,
236
+ value: value,
223
237
  };
224
238
  });
225
239
  }
@@ -230,10 +230,28 @@ class FlowParser implements Parser {
230
230
  parseEnumMembers(
231
231
  typeAnnotation: $FlowFixMe,
232
232
  ): $ReadOnlyArray<NativeModuleEnumMember> {
233
- return typeAnnotation.members.map(member => ({
234
- name: member.id.name,
235
- value: member.init?.value ?? member.id.name,
236
- }));
233
+ return typeAnnotation.members.map(member => {
234
+ const value =
235
+ typeof member.init?.value === 'number'
236
+ ? {
237
+ type: 'NumberLiteralTypeAnnotation',
238
+ value: member.init.value,
239
+ }
240
+ : typeof member.init?.value === 'string'
241
+ ? {
242
+ type: 'StringLiteralTypeAnnotation',
243
+ value: member.init.value,
244
+ }
245
+ : {
246
+ type: 'StringLiteralTypeAnnotation',
247
+ value: member.id.name,
248
+ };
249
+
250
+ return {
251
+ name: member.id.name,
252
+ value: value,
253
+ };
254
+ });
237
255
  }
238
256
 
239
257
  isModuleInterface(node: $FlowFixMe): boolean {
@@ -158,21 +158,33 @@ export class MockedParser {
158
158
  ? [
159
159
  {
160
160
  name: 'Hello',
161
- value: 'hello',
161
+ value: {
162
+ type: 'StringLiteralTypeAnnotation',
163
+ value: 'hello',
164
+ },
162
165
  },
163
166
  {
164
167
  name: 'Goodbye',
165
- value: 'goodbye',
168
+ value: {
169
+ type: 'StringLiteralTypeAnnotation',
170
+ value: 'goodbye',
171
+ },
166
172
  },
167
173
  ]
168
174
  : [
169
175
  {
170
176
  name: 'On',
171
- value: '1',
177
+ value: {
178
+ type: 'NumberLiteralTypeAnnotation',
179
+ value: 1,
180
+ },
172
181
  },
173
182
  {
174
183
  name: 'Off',
175
- value: '0',
184
+ value: {
185
+ type: 'NumberLiteralTypeAnnotation',
186
+ value: 0,
187
+ },
176
188
  },
177
189
  ];
178
190
  }
@@ -175,21 +175,33 @@ export class MockedParser implements Parser {
175
175
  ? [
176
176
  {
177
177
  name: 'Hello',
178
- value: 'hello',
178
+ value: {
179
+ type: 'StringLiteralTypeAnnotation',
180
+ value: 'hello',
181
+ },
179
182
  },
180
183
  {
181
184
  name: 'Goodbye',
182
- value: 'goodbye',
185
+ value: {
186
+ type: 'StringLiteralTypeAnnotation',
187
+ value: 'goodbye',
188
+ },
183
189
  },
184
190
  ]
185
191
  : [
186
192
  {
187
193
  name: 'On',
188
- value: '1',
194
+ value: {
195
+ type: 'NumberLiteralTypeAnnotation',
196
+ value: 1,
197
+ },
189
198
  },
190
199
  {
191
200
  name: 'Off',
192
- value: '0',
201
+ value: {
202
+ type: 'NumberLiteralTypeAnnotation',
203
+ value: 0,
204
+ },
193
205
  },
194
206
  ];
195
207
  }
@@ -255,41 +255,60 @@ class TypeScriptParser {
255
255
  }
256
256
  parseEnumMembers(typeAnnotation) {
257
257
  return typeAnnotation.members.map(member => {
258
- var _member$initializer5, _member$initializer$v, _member$initializer7;
259
- // Handle negative values
260
- if (
258
+ var _member$initializer5,
259
+ _member$initializer6,
260
+ _member$initializer7,
261
+ _member$initializer8,
262
+ _member$initializer9,
263
+ _member$initializer10;
264
+ const value =
261
265
  ((_member$initializer5 = member.initializer) === null ||
262
266
  _member$initializer5 === void 0
263
267
  ? void 0
264
268
  : _member$initializer5.operator) === '-'
265
- ) {
266
- var _member$initializer$a, _member$initializer6;
267
- return {
268
- name: member.id.name,
269
- value:
270
- (_member$initializer$a = -((_member$initializer6 =
271
- member.initializer) === null ||
272
- _member$initializer6 === void 0 ||
273
- (_member$initializer6 = _member$initializer6.argument) === null ||
274
- _member$initializer6 === void 0
269
+ ? {
270
+ type: 'NumberLiteralTypeAnnotation',
271
+ value:
272
+ -1 *
273
+ ((_member$initializer6 = member.initializer) === null ||
274
+ _member$initializer6 === void 0 ||
275
+ (_member$initializer6 = _member$initializer6.argument) ===
276
+ null ||
277
+ _member$initializer6 === void 0
278
+ ? void 0
279
+ : _member$initializer6.value),
280
+ }
281
+ : typeof ((_member$initializer7 = member.initializer) === null ||
282
+ _member$initializer7 === void 0
275
283
  ? void 0
276
- : _member$initializer6.value)) !== null &&
277
- _member$initializer$a !== void 0
278
- ? _member$initializer$a
279
- : member.id.name,
280
- };
281
- }
284
+ : _member$initializer7.value) === 'number'
285
+ ? {
286
+ type: 'NumberLiteralTypeAnnotation',
287
+ value:
288
+ (_member$initializer8 = member.initializer) === null ||
289
+ _member$initializer8 === void 0
290
+ ? void 0
291
+ : _member$initializer8.value,
292
+ }
293
+ : typeof ((_member$initializer9 = member.initializer) === null ||
294
+ _member$initializer9 === void 0
295
+ ? void 0
296
+ : _member$initializer9.value) === 'string'
297
+ ? {
298
+ type: 'StringLiteralTypeAnnotation',
299
+ value:
300
+ (_member$initializer10 = member.initializer) === null ||
301
+ _member$initializer10 === void 0
302
+ ? void 0
303
+ : _member$initializer10.value,
304
+ }
305
+ : {
306
+ type: 'StringLiteralTypeAnnotation',
307
+ value: member.id.name,
308
+ };
282
309
  return {
283
310
  name: member.id.name,
284
- value:
285
- (_member$initializer$v =
286
- (_member$initializer7 = member.initializer) === null ||
287
- _member$initializer7 === void 0
288
- ? void 0
289
- : _member$initializer7.value) !== null &&
290
- _member$initializer$v !== void 0
291
- ? _member$initializer$v
292
- : member.id.name,
311
+ value,
293
312
  };
294
313
  });
295
314
  }
@@ -250,17 +250,30 @@ class TypeScriptParser implements Parser {
250
250
  typeAnnotation: $FlowFixMe,
251
251
  ): $ReadOnlyArray<NativeModuleEnumMember> {
252
252
  return typeAnnotation.members.map(member => {
253
- // Handle negative values
254
- if (member.initializer?.operator === '-') {
255
- return {
256
- name: member.id.name,
257
- value: -member.initializer?.argument?.value ?? member.id.name,
258
- };
259
- }
253
+ const value =
254
+ member.initializer?.operator === '-'
255
+ ? {
256
+ type: 'NumberLiteralTypeAnnotation',
257
+ value: -1 * member.initializer?.argument?.value,
258
+ }
259
+ : typeof member.initializer?.value === 'number'
260
+ ? {
261
+ type: 'NumberLiteralTypeAnnotation',
262
+ value: member.initializer?.value,
263
+ }
264
+ : typeof member.initializer?.value === 'string'
265
+ ? {
266
+ type: 'StringLiteralTypeAnnotation',
267
+ value: member.initializer?.value,
268
+ }
269
+ : {
270
+ type: 'StringLiteralTypeAnnotation',
271
+ value: member.id.name,
272
+ };
260
273
 
261
274
  return {
262
275
  name: member.id.name,
263
- value: member.initializer?.value ?? member.id.name,
276
+ value,
264
277
  };
265
278
  });
266
279
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native/codegen",
3
- "version": "0.78.0-nightly-20241201-91e217ff5",
3
+ "version": "0.78.0-nightly-20241203-bfc8b3391",
4
4
  "description": "Code generation tools for React Native",
5
5
  "license": "MIT",
6
6
  "repository": {