@react-native-windows/codegen 0.77.0 → 0.78.0-preview.1
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.
- package/CHANGELOG.md +29 -10
- package/lib-commonjs/generators/ObjectTypes.d.ts +2 -2
- package/lib-commonjs/generators/ObjectTypes.js.map +1 -1
- package/lib-commonjs/generators/PropObjectTypes.js +4 -13
- package/lib-commonjs/generators/PropObjectTypes.js.map +1 -1
- package/package.json +6 -6
- package/src/generators/ObjectTypes.ts +2 -2
- package/src/generators/PropObjectTypes.ts +4 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,45 @@
|
|
|
1
1
|
# Change Log - @react-native-windows/codegen
|
|
2
2
|
|
|
3
|
-
<!-- This log was last generated on
|
|
3
|
+
<!-- This log was last generated on Tue, 28 Jan 2025 18:54:45 GMT and should not be manually modified. -->
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
-
## 0.
|
|
7
|
+
## 0.78.0-preview.1
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Tue, 28 Jan 2025 18:54:45 GMT
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### Changes
|
|
12
12
|
|
|
13
|
-
- Promote 0.
|
|
14
|
-
- Bump @react-native-windows/fs to v0.
|
|
13
|
+
- Promote 0.78 to preview (email not defined)
|
|
14
|
+
- Bump @react-native-windows/fs to v0.78.0-preview.1
|
|
15
15
|
|
|
16
|
-
## 0.
|
|
16
|
+
## 0.0.0-canary.117
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Thu, 23 Jan 2025 06:24:57 GMT
|
|
19
19
|
|
|
20
20
|
### Changes
|
|
21
21
|
|
|
22
|
-
-
|
|
23
|
-
|
|
22
|
+
- Initial integrate (yajurgrover24@gmail.com)
|
|
23
|
+
|
|
24
|
+
## 0.0.0-canary.116
|
|
25
|
+
|
|
26
|
+
Sat, 11 Jan 2025 06:30:40 GMT
|
|
27
|
+
|
|
28
|
+
### Changes
|
|
29
|
+
|
|
30
|
+
- Bump @react-native-windows/fs to v0.0.0-canary.61
|
|
31
|
+
- Bump @rnw-scripts/eslint-config to v1.2.32
|
|
32
|
+
- Bump @rnw-scripts/just-task to v2.3.49
|
|
33
|
+
|
|
34
|
+
## 0.0.0-canary.115
|
|
35
|
+
|
|
36
|
+
Fri, 10 Jan 2025 06:23:19 GMT
|
|
37
|
+
|
|
38
|
+
### Changes
|
|
39
|
+
|
|
40
|
+
- Bump @react-native-windows/fs to v0.0.0-canary.60
|
|
41
|
+
- Bump @rnw-scripts/eslint-config to v1.2.31
|
|
42
|
+
- Bump @rnw-scripts/just-task to v2.3.48
|
|
24
43
|
|
|
25
44
|
## 0.0.0-canary.114
|
|
26
45
|
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
* @format
|
|
5
5
|
*/
|
|
6
|
-
import type { NativeModuleBaseTypeAnnotation, NativeModuleStringTypeAnnotation, NativeModuleFunctionTypeAnnotation, NativeModuleStringLiteralTypeAnnotation,
|
|
6
|
+
import type { NativeModuleBaseTypeAnnotation, NativeModuleStringTypeAnnotation, NativeModuleFunctionTypeAnnotation, NativeModuleStringLiteralTypeAnnotation, StringLiteralUnionTypeAnnotation, UnsafeAnyTypeAnnotation, Nullable } from '@react-native/codegen/lib/CodegenSchema';
|
|
7
7
|
import { AliasMap } from './AliasManaging';
|
|
8
8
|
export type CppStringTypes = 'std::string' | 'std::wstring';
|
|
9
9
|
export interface CppCodegenOptions {
|
|
10
10
|
cppStringType: CppStringTypes;
|
|
11
11
|
}
|
|
12
|
-
export declare function translateFieldOrReturnType(type: Nullable<NativeModuleBaseTypeAnnotation | NativeModuleStringTypeAnnotation | NativeModuleFunctionTypeAnnotation | NativeModuleStringLiteralTypeAnnotation |
|
|
12
|
+
export declare function translateFieldOrReturnType(type: Nullable<NativeModuleBaseTypeAnnotation | NativeModuleStringTypeAnnotation | NativeModuleFunctionTypeAnnotation | NativeModuleStringLiteralTypeAnnotation | StringLiteralUnionTypeAnnotation> | UnsafeAnyTypeAnnotation, aliases: AliasMap, baseAliasName: string, callerName: 'translateField' | 'translateReturnType', options: CppCodegenOptions): string;
|
|
13
13
|
export declare function translateField(type: Nullable<NativeModuleBaseTypeAnnotation>, aliases: AliasMap, baseAliasName: string, options: CppCodegenOptions): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectTypes.js","sourceRoot":"","sources":["../../src/generators/ObjectTypes.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\n'use strict';\n\nimport type {\n NativeModuleEnumDeclaration,\n NativeModuleBaseTypeAnnotation,\n NativeModuleUnionTypeAnnotation,\n NativeModuleStringTypeAnnotation,\n NativeModuleFunctionTypeAnnotation,\n NativeModuleStringLiteralTypeAnnotation,\n
|
|
1
|
+
{"version":3,"file":"ObjectTypes.js","sourceRoot":"","sources":["../../src/generators/ObjectTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,CAAC;;;AAab,mDAIyB;AAQzB,SAAS,wBAAwB,CAC/B,IAAmE,EACnE,OAA0B;IAE1B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACnC,QAAQ,IAAI,CAAC,UAAU,EAAE;QACvB,KAAK,sBAAsB;YACzB,OAAO,OAAO,CAAC,aAAa,CAAC;QAC/B,KAAK,sBAAsB;YACzB,OAAO,QAAQ,CAAC;QAClB,KAAK,sBAAsB;YACzB,OAAO,kBAAkB,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CACb,0DAA0D,UAAU,EAAE,CACvE,CAAC;KACL;AACH,CAAC;AAED,sCAAsC;AACtC,SAAgB,0BAA0B,CACxC,IAQ2B,EAC3B,OAAiB,EACjB,aAAqB,EACrB,UAAoD,EACpD,OAA0B;IAE1B,wDAAwD;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,sBAAsB,CAAC;QAC5B,KAAK,6BAA6B,CAAC;QACnC,KAAK,kCAAkC;YACrC,OAAO,OAAO,CAAC,aAAa,CAAC;QAC/B,KAAK,sBAAsB,CAAC;QAC5B,KAAK,qBAAqB,CAAC;QAC3B,KAAK,sBAAsB;YACzB,OAAO,QAAQ,CAAC;QAClB,KAAK,qBAAqB;YACxB,OAAO,KAAK,CAAC;QACf,KAAK,uBAAuB;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,qBAAqB;YACxB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,EAAE;gBACjD,OAAO,eAAe,0BAA0B,CAC9C,IAAI,CAAC,WAAW,EAChB,OAAO,EACP,GAAG,aAAa,UAAU,EAC1B,UAAU,EACV,OAAO,CACR,GAAG,CAAC;aACN;iBAAM;gBACL,OAAO,uBAAuB,CAAC;aAChC;QACH,KAAK,6BAA6B;YAChC,OAAO,kBAAkB,CAAC;QAC5B,KAAK,sBAAsB;YACzB,OAAO,IAAA,wCAAwB,EAAC,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAChE,KAAK,wBAAwB,CAAC,CAAC;YAC7B,wDAAwD;YACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,UAAU;YACV,uEAAuE;YACvE,IAAI,IAAI,KAAK,SAAS;gBACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,OAAO,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO,QAAQ,CAAC;SACjB;QACD,KAAK,yBAAyB;YAC5B,OAAO,IAAA,+BAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,wBAAwB;YAC3B,OAAO,iBAAiB,0BAA0B,CAChD,IAAI,CAAC,cAAc,EACnB,OAAO,EACP,aAAa,EACb,UAAU,EACV,OAAO,CACR,GAAG,CAAC;QACP,KAAK,wBAAwB,CAAC;QAC9B,KAAK,qBAAqB;YACxB,OAAO,EAAE,CAAC;QACZ,KAAK,iBAAiB,CAAC;QACvB,KAAK,qBAAqB;YACxB,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,mBAAmB;YACtB,OAAO,mBAAmB,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;KACrE;AACH,CAAC;AA5ED,gEA4EC;AAED,SAAgB,cAAc,CAC5B,IAA8C,EAC9C,OAAiB,EACjB,aAAqB,EACrB,OAA0B;IAE1B,OAAO,0BAA0B,CAC/B,IAAI,EACJ,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,OAAO,CACR,CAAC;AACJ,CAAC;AAbD,wCAaC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\n'use strict';\n\nimport type {\n NativeModuleEnumDeclaration,\n NativeModuleBaseTypeAnnotation,\n NativeModuleUnionTypeAnnotation,\n NativeModuleStringTypeAnnotation,\n NativeModuleFunctionTypeAnnotation,\n NativeModuleStringLiteralTypeAnnotation,\n StringLiteralUnionTypeAnnotation,\n UnsafeAnyTypeAnnotation,\n Nullable,\n} from '@react-native/codegen/lib/CodegenSchema';\nimport {\n AliasMap,\n getAliasCppName,\n getAnonymousAliasCppName,\n} from './AliasManaging';\n\nexport type CppStringTypes = 'std::string' | 'std::wstring';\n\nexport interface CppCodegenOptions {\n cppStringType: CppStringTypes;\n}\n\nfunction translateUnionReturnType(\n type: NativeModuleEnumDeclaration | NativeModuleUnionTypeAnnotation,\n options: CppCodegenOptions,\n): string {\n const memberType = type.memberType;\n switch (type.memberType) {\n case 'StringTypeAnnotation':\n return options.cppStringType;\n case 'NumberTypeAnnotation':\n return 'double';\n case 'ObjectTypeAnnotation':\n return '::React::JSValue';\n default:\n throw new Error(\n `Unknown enum/union member type in translateReturnType: ${memberType}`,\n );\n }\n}\n\n// eslint-disable-next-line complexity\nexport function translateFieldOrReturnType(\n type:\n | Nullable<\n | NativeModuleBaseTypeAnnotation\n | NativeModuleStringTypeAnnotation\n | NativeModuleFunctionTypeAnnotation\n | NativeModuleStringLiteralTypeAnnotation\n | StringLiteralUnionTypeAnnotation\n >\n | UnsafeAnyTypeAnnotation,\n aliases: AliasMap,\n baseAliasName: string,\n callerName: 'translateField' | 'translateReturnType',\n options: CppCodegenOptions,\n): string {\n // avoid: Property 'type' does not exist on type 'never'\n const returnType = type.type;\n switch (type.type) {\n case 'StringTypeAnnotation':\n case 'StringLiteralTypeAnnotation':\n case 'StringLiteralUnionTypeAnnotation':\n return options.cppStringType;\n case 'NumberTypeAnnotation':\n case 'FloatTypeAnnotation':\n case 'DoubleTypeAnnotation':\n return 'double';\n case 'Int32TypeAnnotation':\n return 'int';\n case 'BooleanTypeAnnotation':\n return 'bool';\n case 'ArrayTypeAnnotation':\n if (type.elementType.type !== 'AnyTypeAnnotation') {\n return `std::vector<${translateFieldOrReturnType(\n type.elementType,\n aliases,\n `${baseAliasName}_element`,\n callerName,\n options,\n )}>`;\n } else {\n return `::React::JSValueArray`;\n }\n case 'GenericObjectTypeAnnotation':\n return '::React::JSValue';\n case 'ObjectTypeAnnotation':\n return getAnonymousAliasCppName(aliases, baseAliasName, type);\n case 'ReservedTypeAnnotation': {\n // avoid: Property 'name' does not exist on type 'never'\n const name = type.name;\n // (#6597)\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (name !== 'RootTag')\n throw new Error(`Unknown reserved function: ${name} in ${callerName}`);\n return 'double';\n }\n case 'TypeAliasTypeAnnotation':\n return getAliasCppName(type.name);\n case 'NullableTypeAnnotation':\n return `std::optional<${translateFieldOrReturnType(\n type.typeAnnotation,\n aliases,\n baseAliasName,\n callerName,\n options,\n )}>`;\n case 'FunctionTypeAnnotation':\n case 'MixedTypeAnnotation':\n return '';\n case 'EnumDeclaration':\n case 'UnionTypeAnnotation':\n return translateUnionReturnType(type, options);\n case 'AnyTypeAnnotation':\n return '::React::JSValue?';\n default:\n throw new Error(`Unhandled type in ${callerName}: ${returnType}`);\n }\n}\n\nexport function translateField(\n type: Nullable<NativeModuleBaseTypeAnnotation>,\n aliases: AliasMap,\n baseAliasName: string,\n options: CppCodegenOptions,\n): string {\n return translateFieldOrReturnType(\n type,\n aliases,\n baseAliasName,\n 'translateField',\n options,\n );\n}\n"]}
|
|
@@ -131,7 +131,7 @@ function translateComponentEventType(type, aliases, baseAliasName, options) {
|
|
|
131
131
|
case 'ObjectTypeAnnotation':
|
|
132
132
|
arrayTemplateArg = translateComponentEventType(type.elementType, aliases, baseAliasName, options).type;
|
|
133
133
|
break;
|
|
134
|
-
case '
|
|
134
|
+
case 'StringLiteralUnionTypeAnnotation':
|
|
135
135
|
arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string
|
|
136
136
|
break;
|
|
137
137
|
default:
|
|
@@ -145,7 +145,7 @@ function translateComponentEventType(type, aliases, baseAliasName, options) {
|
|
|
145
145
|
case 'MixedTypeAnnotation': {
|
|
146
146
|
return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };
|
|
147
147
|
}
|
|
148
|
-
case '
|
|
148
|
+
case 'StringLiteralUnionTypeAnnotation':
|
|
149
149
|
return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing a string
|
|
150
150
|
default:
|
|
151
151
|
throw new Error(`Unhandled type: ${type.type}`);
|
|
@@ -183,19 +183,10 @@ function translateCommandParamType(type, aliases, baseAliasName, options) {
|
|
|
183
183
|
case 'StringTypeAnnotation':
|
|
184
184
|
arrayTemplateArg = options.cppStringType;
|
|
185
185
|
break;
|
|
186
|
-
case '
|
|
187
|
-
|
|
188
|
-
arrayTemplateArg = `std::vector<${innerType.type}>`;
|
|
189
|
-
break;
|
|
190
|
-
case 'ReservedPropTypeAnnotation':
|
|
186
|
+
case 'MixedTypeAnnotation':
|
|
187
|
+
// TODO - not sure what exact value to be used here
|
|
191
188
|
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';
|
|
192
189
|
break;
|
|
193
|
-
case 'ObjectTypeAnnotation':
|
|
194
|
-
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValueObject'; // TODO - better typing
|
|
195
|
-
break;
|
|
196
|
-
case 'StringEnumTypeAnnotation':
|
|
197
|
-
arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string
|
|
198
|
-
break;
|
|
199
190
|
case 'GenericTypeAnnotation': // TODO verify schema - Getting this type when running codegen on all the built in types
|
|
200
191
|
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';
|
|
201
192
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropObjectTypes.js","sourceRoot":"","sources":["../../src/generators/PropObjectTypes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropTypeAnnotation, ObjectTypeAnnotation, EventTypeAnnotation, CommandParamTypeAnnotation } from '@react-native/codegen/lib/CodegenSchema';\nimport type { CppCodegenOptions } from './ObjectTypes';\nimport {\n AliasMap,\n getAnonymousAliasCppName,\n} from './AliasManaging';\n\n\n// eslint-disable-next-line complexity\nexport function translateComponentPropsFieldType(type: PropTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<PropTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: type.default ? `{${type.default}}` : '', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'ArrayTypeAnnotation':\n\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'ArrayTypeAnnotation':\n const innerType = translateComponentPropsFieldType(type.elementType, aliases, baseAliasName, options);\n arrayTemplateArg = `std::vector<${innerType.type}>`;\n break;\n case 'ObjectTypeAnnotation':\n arrayTemplateArg = translateComponentPropsFieldType(type.elementType, aliases, baseAliasName, options).type;\n break;\n case 'ReservedPropTypeAnnotation':\n switch (type.elementType.name) {\n case 'ColorPrimitive':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::Color';\n break;\n case 'DimensionPrimitive':\n case 'EdgeInsetsPrimitive':\n case 'ImageRequestPrimitive':\n case 'ImageSourcePrimitive':\n case 'PointPrimitive':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue'; // TODO - better handling for these types than JSValue\n break;\n default:\n throw new Error(`Unhandled ReservedPropTypeAnnotation type: ${type.elementType.name}`);\n }\n break;\n case 'StringEnumTypeAnnotation':\n arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string\n break;\n default:\n throw new Error(`Unhandled type: ${type.type}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '' };\n case 'ReservedPropTypeAnnotation':\n switch (type.name) {\n case 'ColorPrimitive':\n return { type: 'winrt::Microsoft::ReactNative::Color', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n case 'DimensionPrimitive':\n case 'EdgeInsetsPrimitive':\n case 'ImageRequestPrimitive':\n case 'ImageSourcePrimitive':\n case 'PointPrimitive':\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true }; // TODO - better handling for these types than JSValue\n default:\n throw new Error(`Unhandled ReservedPropTypeAnnotation type: ${type.name}`);\n }\n case 'ObjectTypeAnnotation': {\n return { type: getAnonymousAliasCppName<ObjectTypeAnnotation<PropTypeAnnotation>>(aliases, baseAliasName, type), initializer: '' };\n }\n case 'MixedTypeAnnotation':\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n case 'Int32EnumTypeAnnotation':\n return { type: 'int32_t', initializer: '' }; // TODO - better enum type handling than just passing a string\n case 'StringEnumTypeAnnotation':\n return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing an int\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}\n\nexport function translateComponentEventType(type: EventTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<EventTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: '' };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: '{}' };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: '{}' };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: '{}' };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: '{}' };\n case 'ArrayTypeAnnotation':\n {\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'ArrayTypeAnnotation':\n const innerType = translateComponentEventType(type.elementType, aliases, baseAliasName, options);\n arrayTemplateArg = `std::vector<${innerType.type}>`;\n break;\n case 'MixedTypeAnnotation':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n case 'ObjectTypeAnnotation':\n arrayTemplateArg = translateComponentEventType(type.elementType, aliases, baseAliasName, options).type;\n break;\n case 'StringEnumTypeAnnotation':\n arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string\n break;\n default:\n throw new Error(`Unhandled type: ${type.type}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '{}' };\n }\n case 'ObjectTypeAnnotation': {\n return { type: getAnonymousAliasCppName<ObjectTypeAnnotation<EventTypeAnnotation>>(aliases, baseAliasName, type), initializer: '' };\n }\n case 'MixedTypeAnnotation': {\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n }\n case 'StringEnumTypeAnnotation':\n return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing a string\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}\n\n\nexport function translateCommandParamType(type: CommandParamTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<CommandParamTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: '' };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: '{}' };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: '{}' };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: '{}' };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: '{}' };\n case 'ArrayTypeAnnotation':\n {\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'ArrayTypeAnnotation':\n const innerType = translateCommandParamType(type.elementType, aliases, baseAliasName, options);\n arrayTemplateArg = `std::vector<${innerType.type}>`;\n break;\n case 'ReservedPropTypeAnnotation':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n case 'ObjectTypeAnnotation':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValueObject'; // TODO - better typing\n break;\n case 'StringEnumTypeAnnotation':\n arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string\n break;\n case 'GenericTypeAnnotation' as any: // TODO verify schema - Getting this type when running codegen on all the built in types\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n default:\n throw new Error(`Unhandled type: ${(type.elementType as any).type} - ${JSON.stringify(type.elementType, null, 2)}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '{}' };\n }\n case 'ReservedTypeAnnotation': \n if ((type.name as any) !== 'RootTag') {\n throw new Error(`Unhandled ReservedTypeAnnotation: ${type.name}`)\n }\n return { type: 'bool', initializer: '{-1}' };\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"PropObjectTypes.js","sourceRoot":"","sources":["../../src/generators/PropObjectTypes.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropTypeAnnotation, ObjectTypeAnnotation, EventTypeAnnotation, CommandParamTypeAnnotation } from '@react-native/codegen/lib/CodegenSchema';\nimport type { CppCodegenOptions } from './ObjectTypes';\nimport {\n AliasMap,\n getAnonymousAliasCppName,\n} from './AliasManaging';\n\n\n// eslint-disable-next-line complexity\nexport function translateComponentPropsFieldType(type: PropTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<PropTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: type.default ? `{${type.default}}` : '', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };\n case 'ArrayTypeAnnotation':\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'ArrayTypeAnnotation':\n const innerType = translateComponentPropsFieldType(type.elementType, aliases, baseAliasName, options);\n arrayTemplateArg = `std::vector<${innerType.type}>`;\n break;\n case 'ObjectTypeAnnotation':\n arrayTemplateArg = translateComponentPropsFieldType(type.elementType, aliases, baseAliasName, options).type;\n break;\n case 'ReservedPropTypeAnnotation':\n switch (type.elementType.name) {\n case 'ColorPrimitive':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::Color';\n break;\n case 'DimensionPrimitive':\n case 'EdgeInsetsPrimitive':\n case 'ImageRequestPrimitive':\n case 'ImageSourcePrimitive':\n case 'PointPrimitive':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue'; // TODO - better handling for these types than JSValue\n break;\n default:\n throw new Error(`Unhandled ReservedPropTypeAnnotation type: ${type.elementType.name}`);\n }\n break;\n case 'StringEnumTypeAnnotation':\n arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string\n break;\n default:\n throw new Error(`Unhandled type: ${type.type}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '' };\n case 'ReservedPropTypeAnnotation':\n switch (type.name) {\n case 'ColorPrimitive':\n return { type: 'winrt::Microsoft::ReactNative::Color', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n case 'DimensionPrimitive':\n case 'EdgeInsetsPrimitive':\n case 'ImageRequestPrimitive':\n case 'ImageSourcePrimitive':\n case 'PointPrimitive':\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true }; // TODO - better handling for these types than JSValue\n default:\n throw new Error(`Unhandled ReservedPropTypeAnnotation type: ${type.name}`);\n }\n case 'ObjectTypeAnnotation': {\n return { type: getAnonymousAliasCppName<ObjectTypeAnnotation<PropTypeAnnotation>>(aliases, baseAliasName, type), initializer: '' };\n }\n case 'MixedTypeAnnotation':\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n case 'Int32EnumTypeAnnotation':\n return { type: 'int32_t', initializer: '' }; // TODO - better enum type handling than just passing a string\n case 'StringEnumTypeAnnotation':\n return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing an int\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}\n\nexport function translateComponentEventType(type: EventTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<EventTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: '' };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: '{}' };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: '{}' };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: '{}' };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: '{}' };\n case 'ArrayTypeAnnotation':\n {\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'ArrayTypeAnnotation':\n const innerType = translateComponentEventType(type.elementType, aliases, baseAliasName, options);\n arrayTemplateArg = `std::vector<${innerType.type}>`;\n break;\n case 'MixedTypeAnnotation':\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n case 'ObjectTypeAnnotation':\n arrayTemplateArg = translateComponentEventType(type.elementType, aliases, baseAliasName, options).type;\n break;\n case 'StringLiteralUnionTypeAnnotation':\n arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string\n break;\n default:\n throw new Error(`Unhandled type: ${type.type}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '{}' };\n }\n case 'ObjectTypeAnnotation': {\n return { type: getAnonymousAliasCppName<ObjectTypeAnnotation<EventTypeAnnotation>>(aliases, baseAliasName, type), initializer: '' };\n }\n case 'MixedTypeAnnotation': {\n return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };\n }\n case 'StringLiteralUnionTypeAnnotation':\n return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing a string\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}\n\n\nexport function translateCommandParamType(type: CommandParamTypeAnnotation,\n aliases: AliasMap<ObjectTypeAnnotation<CommandParamTypeAnnotation>>,\n baseAliasName: string,\n options: CppCodegenOptions): { type: string, initializer: string, alreadySupportsOptionalOrHasDefault?: boolean } {\n switch (type.type) {\n case 'StringTypeAnnotation':\n return { type: options.cppStringType, initializer: '' };\n case 'FloatTypeAnnotation':\n return { type: 'float', initializer: '{}' };\n case 'DoubleTypeAnnotation':\n return { type: 'double', initializer: '{}' };\n case 'Int32TypeAnnotation':\n return { type: 'int32_t', initializer: '{}' };\n case 'BooleanTypeAnnotation':\n return { type: 'bool', initializer: '{}' };\n case 'ArrayTypeAnnotation':\n {\n let arrayTemplateArg = '';\n switch (type.elementType.type) {\n case 'BooleanTypeAnnotation':\n arrayTemplateArg = 'bool';\n break;\n case 'DoubleTypeAnnotation':\n arrayTemplateArg = 'double';\n break;\n case 'FloatTypeAnnotation':\n arrayTemplateArg = 'float';\n break;\n case 'Int32TypeAnnotation':\n arrayTemplateArg = 'int32_t';\n break;\n case 'StringTypeAnnotation':\n arrayTemplateArg = options.cppStringType;\n break;\n case 'MixedTypeAnnotation':\n // TODO - not sure what exact value to be used here\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n case 'GenericTypeAnnotation' as any: // TODO verify schema - Getting this type when running codegen on all the built in types\n arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';\n break;\n default:\n throw new Error(`Unhandled type: ${(type.elementType as any).type} - ${JSON.stringify(type.elementType, null, 2)}`);\n }\n\n return { type: `std::vector<${arrayTemplateArg}>`, initializer: '{}' };\n }\n case 'ReservedTypeAnnotation': \n if ((type.name as any) !== 'RootTag') {\n throw new Error(`Unhandled ReservedTypeAnnotation: ${type.name}`)\n }\n return { type: 'bool', initializer: '{-1}' };\n default:\n throw new Error(`Unhandled type: ${(type as any).type}`);\n }\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-windows/codegen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.78.0-preview.1",
|
|
4
4
|
"description": "Generators for react-native-codegen targeting react-native-windows",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"react-native-windows-codegen": "./bin.js"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@react-native-windows/fs": "0.
|
|
25
|
+
"@react-native-windows/fs": "0.78.0-preview.1",
|
|
26
26
|
"chalk": "^4.1.0",
|
|
27
27
|
"globby": "^11.1.0",
|
|
28
28
|
"mustache": "^4.0.1",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"yargs": "^16.2.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@rnw-scripts/eslint-config": "1.2.
|
|
33
|
+
"@rnw-scripts/eslint-config": "1.2.32",
|
|
34
34
|
"@rnw-scripts/jest-unittest-config": "1.5.11",
|
|
35
|
-
"@rnw-scripts/just-task": "2.3.
|
|
35
|
+
"@rnw-scripts/just-task": "2.3.49",
|
|
36
36
|
"@rnw-scripts/ts-config": "2.0.5",
|
|
37
37
|
"@types/chalk": "^2.2.0",
|
|
38
38
|
"@types/jest": "^29.2.2",
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
"src"
|
|
58
58
|
],
|
|
59
59
|
"beachball": {
|
|
60
|
-
"defaultNpmTag": "
|
|
60
|
+
"defaultNpmTag": "preview",
|
|
61
61
|
"disallowedChangeTypes": [
|
|
62
62
|
"major",
|
|
63
63
|
"minor",
|
|
64
|
-
"
|
|
64
|
+
"patch",
|
|
65
65
|
"premajor",
|
|
66
66
|
"preminor",
|
|
67
67
|
"prepatch"
|
|
@@ -13,7 +13,7 @@ import type {
|
|
|
13
13
|
NativeModuleStringTypeAnnotation,
|
|
14
14
|
NativeModuleFunctionTypeAnnotation,
|
|
15
15
|
NativeModuleStringLiteralTypeAnnotation,
|
|
16
|
-
|
|
16
|
+
StringLiteralUnionTypeAnnotation,
|
|
17
17
|
UnsafeAnyTypeAnnotation,
|
|
18
18
|
Nullable,
|
|
19
19
|
} from '@react-native/codegen/lib/CodegenSchema';
|
|
@@ -56,7 +56,7 @@ export function translateFieldOrReturnType(
|
|
|
56
56
|
| NativeModuleStringTypeAnnotation
|
|
57
57
|
| NativeModuleFunctionTypeAnnotation
|
|
58
58
|
| NativeModuleStringLiteralTypeAnnotation
|
|
59
|
-
|
|
|
59
|
+
| StringLiteralUnionTypeAnnotation
|
|
60
60
|
>
|
|
61
61
|
| UnsafeAnyTypeAnnotation,
|
|
62
62
|
aliases: AliasMap,
|
|
@@ -23,7 +23,6 @@ export function translateComponentPropsFieldType(type: PropTypeAnnotation,
|
|
|
23
23
|
case 'BooleanTypeAnnotation':
|
|
24
24
|
return { type: 'bool', initializer: type.default ? `{${type.default}}` : '{}', alreadySupportsOptionalOrHasDefault: !!type.default };
|
|
25
25
|
case 'ArrayTypeAnnotation':
|
|
26
|
-
|
|
27
26
|
let arrayTemplateArg = '';
|
|
28
27
|
switch (type.elementType.type) {
|
|
29
28
|
case 'BooleanTypeAnnotation':
|
|
@@ -143,7 +142,7 @@ export function translateComponentEventType(type: EventTypeAnnotation,
|
|
|
143
142
|
case 'ObjectTypeAnnotation':
|
|
144
143
|
arrayTemplateArg = translateComponentEventType(type.elementType, aliases, baseAliasName, options).type;
|
|
145
144
|
break;
|
|
146
|
-
case '
|
|
145
|
+
case 'StringLiteralUnionTypeAnnotation':
|
|
147
146
|
arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string
|
|
148
147
|
break;
|
|
149
148
|
default:
|
|
@@ -158,7 +157,7 @@ export function translateComponentEventType(type: EventTypeAnnotation,
|
|
|
158
157
|
case 'MixedTypeAnnotation': {
|
|
159
158
|
return { type: 'winrt::Microsoft::ReactNative::JSValue', initializer: '{nullptr}', alreadySupportsOptionalOrHasDefault: true };
|
|
160
159
|
}
|
|
161
|
-
case '
|
|
160
|
+
case 'StringLiteralUnionTypeAnnotation':
|
|
162
161
|
return { type: options.cppStringType, initializer: '' }; // TODO - better enum type handling than just passing a string
|
|
163
162
|
default:
|
|
164
163
|
throw new Error(`Unhandled type: ${(type as any).type}`);
|
|
@@ -200,19 +199,10 @@ export function translateCommandParamType(type: CommandParamTypeAnnotation,
|
|
|
200
199
|
case 'StringTypeAnnotation':
|
|
201
200
|
arrayTemplateArg = options.cppStringType;
|
|
202
201
|
break;
|
|
203
|
-
case '
|
|
204
|
-
|
|
205
|
-
arrayTemplateArg = `std::vector<${innerType.type}>`;
|
|
206
|
-
break;
|
|
207
|
-
case 'ReservedPropTypeAnnotation':
|
|
202
|
+
case 'MixedTypeAnnotation':
|
|
203
|
+
// TODO - not sure what exact value to be used here
|
|
208
204
|
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';
|
|
209
205
|
break;
|
|
210
|
-
case 'ObjectTypeAnnotation':
|
|
211
|
-
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValueObject'; // TODO - better typing
|
|
212
|
-
break;
|
|
213
|
-
case 'StringEnumTypeAnnotation':
|
|
214
|
-
arrayTemplateArg = options.cppStringType; // TODO - better enum type handling than just passing a string
|
|
215
|
-
break;
|
|
216
206
|
case 'GenericTypeAnnotation' as any: // TODO verify schema - Getting this type when running codegen on all the built in types
|
|
217
207
|
arrayTemplateArg = 'winrt::Microsoft::ReactNative::JSValue';
|
|
218
208
|
break;
|