@react-native/codegen 0.74.0 → 0.75.0-nightly-20240221-a1171f79f
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/lib/CodegenSchema.d.ts +10 -1
- package/lib/CodegenSchema.js.flow +2 -1
- package/lib/SchemaValidator.js.flow +2 -2
- package/lib/cli/combine/combine-js-to-schema-cli.js +59 -40
- package/lib/cli/combine/combine-js-to-schema-cli.js.flow +23 -39
- package/lib/cli/combine/combine-js-to-schema.js +49 -1
- package/lib/cli/combine/combine-js-to-schema.js.flow +59 -1
- package/lib/cli/combine/combine-schemas-cli.js +77 -0
- package/lib/cli/combine/combine-schemas-cli.js.flow +87 -0
- package/lib/cli/combine/combine-utils.js +3 -65
- package/lib/cli/combine/combine-utils.js.flow +7 -28
- package/lib/cli/parser/parser.js +1 -1
- package/lib/cli/parser/parser.js.flow +1 -1
- package/lib/generators/RNCodegen.d.ts +1 -0
- package/lib/generators/RNCodegen.js +58 -31
- package/lib/generators/RNCodegen.js.flow +52 -32
- package/lib/generators/TypeUtils/Cxx/index.js +17 -0
- package/lib/generators/TypeUtils/Cxx/index.js.flow +18 -0
- package/lib/generators/TypeUtils/Java/index.js +31 -0
- package/lib/generators/TypeUtils/Java/index.js.flow +27 -0
- package/lib/generators/TypeUtils/Objective-C/index.js +17 -0
- package/lib/generators/TypeUtils/Objective-C/index.js.flow +18 -0
- package/lib/generators/components/ComponentsGeneratorUtils.js +7 -7
- package/lib/generators/components/ComponentsGeneratorUtils.js.flow +8 -10
- package/lib/generators/components/ComponentsProviderUtils.js +55 -0
- package/lib/generators/components/ComponentsProviderUtils.js.flow +60 -0
- package/lib/generators/components/CppHelpers.js +7 -0
- package/lib/generators/components/CppHelpers.js.flow +14 -0
- package/lib/generators/components/GenerateComponentDescriptorCpp.js +89 -0
- package/lib/generators/components/GenerateComponentDescriptorCpp.js.flow +101 -0
- package/lib/generators/components/GenerateComponentDescriptorH.js +28 -12
- package/lib/generators/components/GenerateComponentDescriptorH.js.flow +20 -12
- package/lib/generators/components/GenerateComponentHObjCpp.js +15 -1
- package/lib/generators/components/GenerateComponentHObjCpp.js.flow +11 -2
- package/lib/generators/components/GenerateEventEmitterCpp.js +28 -15
- package/lib/generators/components/GenerateEventEmitterCpp.js.flow +16 -17
- package/lib/generators/components/GenerateEventEmitterH.js +20 -13
- package/lib/generators/components/GenerateEventEmitterH.js.flow +13 -15
- package/lib/generators/components/GeneratePropsCpp.js +17 -8
- package/lib/generators/components/GeneratePropsCpp.js.flow +13 -9
- package/lib/generators/components/GeneratePropsH.js +23 -16
- package/lib/generators/components/GeneratePropsH.js.flow +12 -16
- package/lib/generators/components/GeneratePropsJavaDelegate.js +11 -3
- package/lib/generators/components/GeneratePropsJavaDelegate.js.flow +7 -4
- package/lib/generators/components/GeneratePropsJavaInterface.js +11 -3
- package/lib/generators/components/GeneratePropsJavaInterface.js.flow +6 -3
- package/lib/generators/components/GeneratePropsJavaPojo/PojoCollector.js.flow +6 -6
- package/lib/generators/components/GeneratePropsJavaPojo/index.js +1 -1
- package/lib/generators/components/GeneratePropsJavaPojo/index.js.flow +1 -1
- package/lib/generators/components/GeneratePropsJavaPojo/serializePojo.js.flow +1 -0
- package/lib/generators/components/GenerateShadowNodeCpp.js +19 -8
- package/lib/generators/components/GenerateShadowNodeCpp.js.flow +9 -8
- package/lib/generators/components/GenerateShadowNodeH.js +27 -11
- package/lib/generators/components/GenerateShadowNodeH.js.flow +11 -14
- package/lib/generators/components/GenerateStateCpp.js +19 -8
- package/lib/generators/components/GenerateStateCpp.js.flow +9 -8
- package/lib/generators/components/GenerateStateH.js +9 -5
- package/lib/generators/components/GenerateStateH.js.flow +3 -4
- package/lib/generators/components/GenerateTests.js +11 -5
- package/lib/generators/components/GenerateTests.js.flow +2 -2
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js +16 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderH.js.flow +18 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js +18 -3
- package/lib/generators/components/GenerateThirdPartyFabricComponentsProviderObjCpp.js.flow +21 -3
- package/lib/generators/components/GenerateViewConfigJs.js +2 -2
- package/lib/generators/components/GenerateViewConfigJs.js.flow +2 -2
- package/lib/generators/components/JavaHelpers.js +8 -0
- package/lib/generators/components/JavaHelpers.js.flow +9 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js +22 -0
- package/lib/generators/components/__test_fixtures__/fixtures.js.flow +22 -0
- package/lib/generators/modules/GenerateModuleCpp.js +14 -10
- package/lib/generators/modules/GenerateModuleCpp.js.flow +9 -10
- package/lib/generators/modules/GenerateModuleH.js +198 -72
- package/lib/generators/modules/GenerateModuleH.js.flow +186 -71
- package/lib/generators/modules/GenerateModuleJavaSpec.js +50 -57
- package/lib/generators/modules/GenerateModuleJavaSpec.js.flow +45 -50
- package/lib/generators/modules/GenerateModuleJniCpp.js +16 -12
- package/lib/generators/modules/GenerateModuleJniCpp.js.flow +11 -12
- package/lib/generators/modules/GenerateModuleJniH.js +12 -5
- package/lib/generators/modules/GenerateModuleJniH.js.flow +8 -6
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js +5 -5
- package/lib/generators/modules/GenerateModuleObjCpp/StructCollector.js.flow +11 -12
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js +23 -21
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeConstantsStruct.js.flow +19 -18
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js +23 -21
- package/lib/generators/modules/GenerateModuleObjCpp/header/serializeRegularStruct.js.flow +19 -18
- package/lib/generators/modules/GenerateModuleObjCpp/index.js +18 -20
- package/lib/generators/modules/GenerateModuleObjCpp/index.js.flow +11 -14
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js +40 -42
- package/lib/generators/modules/GenerateModuleObjCpp/serializeMethod.js.flow +38 -44
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js +25 -27
- package/lib/generators/modules/GenerateModuleObjCpp/source/serializeModule.js.flow +26 -28
- package/lib/generators/modules/Utils.js +98 -0
- package/lib/generators/modules/Utils.js.flow +34 -2
- package/lib/generators/modules/__test_fixtures__/fixtures.js +685 -64
- package/lib/generators/modules/__test_fixtures__/fixtures.js.flow +686 -64
- package/lib/parsers/error-utils.js +17 -17
- package/lib/parsers/error-utils.js.flow +10 -10
- package/lib/parsers/errors.js +10 -0
- package/lib/parsers/errors.js.flow +15 -1
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js +7 -1
- package/lib/parsers/flow/components/__test_fixtures__/fixtures.js.flow +7 -1
- package/lib/parsers/flow/components/commands.js +24 -0
- package/lib/parsers/flow/components/commands.js.flow +45 -3
- package/lib/parsers/flow/components/componentsUtils.js +5 -4
- package/lib/parsers/flow/components/componentsUtils.js.flow +4 -3
- package/lib/parsers/flow/components/events.js +7 -7
- package/lib/parsers/flow/components/events.js.flow +7 -7
- package/lib/parsers/flow/components/index.js +8 -8
- package/lib/parsers/flow/components/index.js.flow +3 -3
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js +13 -0
- package/lib/parsers/flow/modules/__test_fixtures__/fixtures.js.flow +13 -0
- package/lib/parsers/flow/modules/index.js +20 -19
- package/lib/parsers/flow/modules/index.js.flow +10 -11
- package/lib/parsers/flow/parseFlowAndThrowErrors.js +105 -0
- package/lib/parsers/flow/parseFlowAndThrowErrors.js.flow +41 -0
- package/lib/parsers/flow/parser.js +24 -25
- package/lib/parsers/flow/parser.js.flow +27 -36
- package/lib/parsers/flow/utils.js.flow +1 -1
- package/lib/parsers/parser.js.flow +12 -10
- package/lib/parsers/parserMock.js +11 -12
- package/lib/parsers/parserMock.js.flow +25 -28
- package/lib/parsers/parsers-commons.js +85 -36
- package/lib/parsers/parsers-commons.js.flow +71 -37
- package/lib/parsers/parsers-primitives.js +17 -17
- package/lib/parsers/parsers-primitives.js.flow +14 -16
- package/lib/parsers/schema.js.flow +3 -3
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js +8 -1
- package/lib/parsers/typescript/components/__test_fixtures__/fixtures.js.flow +8 -1
- package/lib/parsers/typescript/components/commands.js +23 -15
- package/lib/parsers/typescript/components/commands.js.flow +24 -16
- package/lib/parsers/typescript/components/componentsUtils.js +34 -20
- package/lib/parsers/typescript/components/componentsUtils.js.flow +36 -19
- package/lib/parsers/typescript/components/events.js +22 -22
- package/lib/parsers/typescript/components/events.js.flow +11 -10
- package/lib/parsers/typescript/components/extends.js.flow +1 -0
- package/lib/parsers/typescript/components/index.js +10 -10
- package/lib/parsers/typescript/components/index.js.flow +4 -4
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js +13 -0
- package/lib/parsers/typescript/modules/__test_fixtures__/fixtures.js.flow +13 -0
- package/lib/parsers/typescript/modules/index.js +25 -20
- package/lib/parsers/typescript/modules/index.js.flow +16 -14
- package/lib/parsers/typescript/parser.js +25 -26
- package/lib/parsers/typescript/parser.js.flow +23 -27
- package/lib/parsers/utils.js +5 -0
- package/lib/parsers/utils.js.flow +6 -1
- package/package.json +8 -6
|
@@ -10,15 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
const _require = require('../Utils'),
|
|
14
|
+
indent = _require.indent,
|
|
15
|
+
toSafeCppString = _require.toSafeCppString;
|
|
16
|
+
const _require2 = require('./CppHelpers'),
|
|
17
|
+
generateEventStructName = _require2.generateEventStructName,
|
|
18
|
+
getCppArrayTypeForAnnotation = _require2.getCppArrayTypeForAnnotation,
|
|
19
|
+
getCppTypeForAnnotation = _require2.getCppTypeForAnnotation,
|
|
20
|
+
getImports = _require2.getImports;
|
|
13
21
|
const nullthrows = require('nullthrows');
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
getCppTypeForAnnotation = _require.getCppTypeForAnnotation,
|
|
18
|
-
generateEventStructName = _require.generateEventStructName;
|
|
19
|
-
const _require2 = require('../Utils'),
|
|
20
|
-
indent = _require2.indent,
|
|
21
|
-
toSafeCppString = _require2.toSafeCppString;
|
|
22
|
+
|
|
23
|
+
// File path -> contents
|
|
24
|
+
|
|
22
25
|
const FileTemplate = ({componentEmitters, extraIncludes}) => `
|
|
23
26
|
/**
|
|
24
27
|
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
@@ -33,11 +36,9 @@ const FileTemplate = ({componentEmitters, extraIncludes}) => `
|
|
|
33
36
|
#include <react/renderer/components/view/ViewEventEmitter.h>
|
|
34
37
|
${[...extraIncludes].join('\n')}
|
|
35
38
|
|
|
36
|
-
namespace facebook {
|
|
37
|
-
namespace react {
|
|
39
|
+
namespace facebook::react {
|
|
38
40
|
${componentEmitters}
|
|
39
|
-
} // namespace react
|
|
40
|
-
} // namespace facebook
|
|
41
|
+
} // namespace facebook::react
|
|
41
42
|
`;
|
|
42
43
|
const ComponentTemplate = ({className, structs, events}) =>
|
|
43
44
|
`
|
|
@@ -226,7 +227,13 @@ function generateEvents(componentName, component) {
|
|
|
226
227
|
.join('\n\n' + ' ');
|
|
227
228
|
}
|
|
228
229
|
module.exports = {
|
|
229
|
-
generate(
|
|
230
|
+
generate(
|
|
231
|
+
libraryName,
|
|
232
|
+
schema,
|
|
233
|
+
packageName,
|
|
234
|
+
assumeNonnull = false,
|
|
235
|
+
headerPrefix,
|
|
236
|
+
) {
|
|
230
237
|
const moduleComponents = Object.keys(schema.modules)
|
|
231
238
|
.map(moduleName => {
|
|
232
239
|
const module = schema.modules[moduleName];
|
|
@@ -10,24 +10,23 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const nullthrows = require('nullthrows');
|
|
14
|
-
|
|
15
|
-
const {
|
|
16
|
-
getImports,
|
|
17
|
-
getCppArrayTypeForAnnotation,
|
|
18
|
-
getCppTypeForAnnotation,
|
|
19
|
-
generateEventStructName,
|
|
20
|
-
} = require('./CppHelpers');
|
|
21
|
-
const {indent, toSafeCppString} = require('../Utils');
|
|
22
|
-
|
|
23
13
|
import type {
|
|
24
14
|
ComponentShape,
|
|
15
|
+
EventTypeAnnotation,
|
|
25
16
|
EventTypeShape,
|
|
26
17
|
NamedShape,
|
|
27
|
-
EventTypeAnnotation,
|
|
28
18
|
SchemaType,
|
|
29
19
|
} from '../../CodegenSchema';
|
|
30
20
|
|
|
21
|
+
const {indent, toSafeCppString} = require('../Utils');
|
|
22
|
+
const {
|
|
23
|
+
generateEventStructName,
|
|
24
|
+
getCppArrayTypeForAnnotation,
|
|
25
|
+
getCppTypeForAnnotation,
|
|
26
|
+
getImports,
|
|
27
|
+
} = require('./CppHelpers');
|
|
28
|
+
const nullthrows = require('nullthrows');
|
|
29
|
+
|
|
31
30
|
// File path -> contents
|
|
32
31
|
type FilesOutput = Map<string, string>;
|
|
33
32
|
type StructsMap = Map<string, string>;
|
|
@@ -57,11 +56,9 @@ const FileTemplate = ({
|
|
|
57
56
|
#include <react/renderer/components/view/ViewEventEmitter.h>
|
|
58
57
|
${[...extraIncludes].join('\n')}
|
|
59
58
|
|
|
60
|
-
namespace facebook {
|
|
61
|
-
namespace react {
|
|
59
|
+
namespace facebook::react {
|
|
62
60
|
${componentEmitters}
|
|
63
|
-
} // namespace react
|
|
64
|
-
} // namespace facebook
|
|
61
|
+
} // namespace facebook::react
|
|
65
62
|
`;
|
|
66
63
|
|
|
67
64
|
const ComponentTemplate = ({
|
|
@@ -314,6 +311,7 @@ module.exports = {
|
|
|
314
311
|
schema: SchemaType,
|
|
315
312
|
packageName?: string,
|
|
316
313
|
assumeNonnull: boolean = false,
|
|
314
|
+
headerPrefix?: string,
|
|
317
315
|
): FilesOutput {
|
|
318
316
|
const moduleComponents: ComponentCollection = Object.keys(schema.modules)
|
|
319
317
|
.map(moduleName => {
|
|
@@ -11,12 +11,13 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
const _require = require('./CppHelpers'),
|
|
14
|
+
IncludeTemplate = _require.IncludeTemplate,
|
|
14
15
|
convertDefaultTypeToString = _require.convertDefaultTypeToString,
|
|
15
16
|
getImports = _require.getImports;
|
|
16
17
|
|
|
17
18
|
// File path -> contents
|
|
18
19
|
|
|
19
|
-
const FileTemplate = ({
|
|
20
|
+
const FileTemplate = ({imports, componentClasses, headerPrefix}) => `
|
|
20
21
|
/**
|
|
21
22
|
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
22
23
|
*
|
|
@@ -26,16 +27,17 @@ const FileTemplate = ({libraryName, imports, componentClasses}) => `
|
|
|
26
27
|
* ${'@'}generated by codegen project: GeneratePropsCpp.js
|
|
27
28
|
*/
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
${IncludeTemplate({
|
|
31
|
+
headerPrefix,
|
|
32
|
+
file: 'Props.h',
|
|
33
|
+
})}
|
|
30
34
|
${imports}
|
|
31
35
|
|
|
32
|
-
namespace facebook {
|
|
33
|
-
namespace react {
|
|
36
|
+
namespace facebook::react {
|
|
34
37
|
|
|
35
38
|
${componentClasses}
|
|
36
39
|
|
|
37
|
-
} // namespace react
|
|
38
|
-
} // namespace facebook
|
|
40
|
+
} // namespace facebook::react
|
|
39
41
|
`;
|
|
40
42
|
const ComponentTemplate = ({className, extendClasses, props}) =>
|
|
41
43
|
`
|
|
@@ -79,7 +81,13 @@ function getClassExtendString(component) {
|
|
|
79
81
|
return extendString;
|
|
80
82
|
}
|
|
81
83
|
module.exports = {
|
|
82
|
-
generate(
|
|
84
|
+
generate(
|
|
85
|
+
libraryName,
|
|
86
|
+
schema,
|
|
87
|
+
packageName,
|
|
88
|
+
assumeNonnull = false,
|
|
89
|
+
headerPrefix,
|
|
90
|
+
) {
|
|
83
91
|
const fileName = 'Props.cpp';
|
|
84
92
|
const allImports = new Set([
|
|
85
93
|
'#include <react/renderer/core/propsConversions.h>',
|
|
@@ -118,8 +126,9 @@ module.exports = {
|
|
|
118
126
|
.join('\n');
|
|
119
127
|
const replacedTemplate = FileTemplate({
|
|
120
128
|
componentClasses: componentProps,
|
|
121
|
-
libraryName,
|
|
122
129
|
imports: Array.from(allImports).sort().join('\n').trim(),
|
|
130
|
+
headerPrefix:
|
|
131
|
+
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
|
|
123
132
|
});
|
|
124
133
|
return new Map([[fileName, replacedTemplate]]);
|
|
125
134
|
},
|
|
@@ -11,19 +11,24 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {ComponentShape, SchemaType} from '../../CodegenSchema';
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
const {
|
|
16
|
+
IncludeTemplate,
|
|
17
|
+
convertDefaultTypeToString,
|
|
18
|
+
getImports,
|
|
19
|
+
} = require('./CppHelpers');
|
|
15
20
|
|
|
16
21
|
// File path -> contents
|
|
17
22
|
type FilesOutput = Map<string, string>;
|
|
18
23
|
|
|
19
24
|
const FileTemplate = ({
|
|
20
|
-
libraryName,
|
|
21
25
|
imports,
|
|
22
26
|
componentClasses,
|
|
27
|
+
headerPrefix,
|
|
23
28
|
}: {
|
|
24
|
-
libraryName: string,
|
|
25
29
|
imports: string,
|
|
26
30
|
componentClasses: string,
|
|
31
|
+
headerPrefix: string,
|
|
27
32
|
}) => `
|
|
28
33
|
/**
|
|
29
34
|
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
@@ -34,16 +39,14 @@ const FileTemplate = ({
|
|
|
34
39
|
* ${'@'}generated by codegen project: GeneratePropsCpp.js
|
|
35
40
|
*/
|
|
36
41
|
|
|
37
|
-
|
|
42
|
+
${IncludeTemplate({headerPrefix, file: 'Props.h'})}
|
|
38
43
|
${imports}
|
|
39
44
|
|
|
40
|
-
namespace facebook {
|
|
41
|
-
namespace react {
|
|
45
|
+
namespace facebook::react {
|
|
42
46
|
|
|
43
47
|
${componentClasses}
|
|
44
48
|
|
|
45
|
-
} // namespace react
|
|
46
|
-
} // namespace facebook
|
|
49
|
+
} // namespace facebook::react
|
|
47
50
|
`;
|
|
48
51
|
|
|
49
52
|
const ComponentTemplate = ({
|
|
@@ -105,6 +108,7 @@ module.exports = {
|
|
|
105
108
|
schema: SchemaType,
|
|
106
109
|
packageName?: string,
|
|
107
110
|
assumeNonnull: boolean = false,
|
|
111
|
+
headerPrefix?: string,
|
|
108
112
|
): FilesOutput {
|
|
109
113
|
const fileName = 'Props.cpp';
|
|
110
114
|
const allImports: Set<string> = new Set([
|
|
@@ -152,8 +156,8 @@ module.exports = {
|
|
|
152
156
|
|
|
153
157
|
const replacedTemplate = FileTemplate({
|
|
154
158
|
componentClasses: componentProps,
|
|
155
|
-
libraryName,
|
|
156
159
|
imports: Array.from(allImports).sort().join('\n').trim(),
|
|
160
|
+
headerPrefix: headerPrefix ?? '',
|
|
157
161
|
});
|
|
158
162
|
|
|
159
163
|
return new Map([[fileName, replacedTemplate]]);
|
|
@@ -10,17 +10,20 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const _require = require('
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const _require2 = require('./
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
const _require = require('../Utils'),
|
|
14
|
+
getEnumName = _require.getEnumName,
|
|
15
|
+
toSafeCppString = _require.toSafeCppString;
|
|
16
|
+
const _require2 = require('./ComponentsGeneratorUtils.js'),
|
|
17
|
+
getLocalImports = _require2.getLocalImports,
|
|
18
|
+
getNativeTypeFromAnnotation = _require2.getNativeTypeFromAnnotation;
|
|
19
|
+
const _require3 = require('./CppHelpers.js'),
|
|
20
|
+
convertDefaultTypeToString = _require3.convertDefaultTypeToString,
|
|
21
|
+
generateStructName = _require3.generateStructName,
|
|
22
|
+
getEnumMaskName = _require3.getEnumMaskName,
|
|
23
|
+
toIntEnumValueName = _require3.toIntEnumValueName;
|
|
24
|
+
|
|
25
|
+
// File path -> contents
|
|
26
|
+
|
|
24
27
|
const FileTemplate = ({imports, componentClasses}) => `
|
|
25
28
|
/**
|
|
26
29
|
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
@@ -34,13 +37,11 @@ const FileTemplate = ({imports, componentClasses}) => `
|
|
|
34
37
|
|
|
35
38
|
${imports}
|
|
36
39
|
|
|
37
|
-
namespace facebook {
|
|
38
|
-
namespace react {
|
|
40
|
+
namespace facebook::react {
|
|
39
41
|
|
|
40
42
|
${componentClasses}
|
|
41
43
|
|
|
42
|
-
} // namespace react
|
|
43
|
-
} // namespace facebook
|
|
44
|
+
} // namespace facebook::react
|
|
44
45
|
`;
|
|
45
46
|
const ClassTemplate = ({enums, structs, className, props, extendClasses}) =>
|
|
46
47
|
`
|
|
@@ -549,7 +550,13 @@ function generateStruct(structs, componentName, nameParts, properties) {
|
|
|
549
550
|
);
|
|
550
551
|
}
|
|
551
552
|
module.exports = {
|
|
552
|
-
generate(
|
|
553
|
+
generate(
|
|
554
|
+
libraryName,
|
|
555
|
+
schema,
|
|
556
|
+
packageName,
|
|
557
|
+
assumeNonnull = false,
|
|
558
|
+
headerPrefix,
|
|
559
|
+
) {
|
|
553
560
|
const fileName = 'Props.h';
|
|
554
561
|
const allImports = new Set();
|
|
555
562
|
const componentClasses = Object.keys(schema.modules)
|
|
@@ -10,28 +10,25 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
import type {ComponentShape} from '../../CodegenSchema';
|
|
13
|
+
import type {
|
|
14
|
+
ExtendsPropsShape,
|
|
15
|
+
NamedShape,
|
|
16
|
+
PropTypeAnnotation,
|
|
17
|
+
SchemaType,
|
|
18
|
+
} from '../../CodegenSchema';
|
|
13
19
|
|
|
20
|
+
const {getEnumName, toSafeCppString} = require('../Utils');
|
|
14
21
|
const {
|
|
15
|
-
getNativeTypeFromAnnotation,
|
|
16
22
|
getLocalImports,
|
|
23
|
+
getNativeTypeFromAnnotation,
|
|
17
24
|
} = require('./ComponentsGeneratorUtils.js');
|
|
18
|
-
|
|
19
25
|
const {
|
|
20
26
|
convertDefaultTypeToString,
|
|
21
|
-
getEnumMaskName,
|
|
22
27
|
generateStructName,
|
|
28
|
+
getEnumMaskName,
|
|
23
29
|
toIntEnumValueName,
|
|
24
30
|
} = require('./CppHelpers.js');
|
|
25
31
|
|
|
26
|
-
const {getEnumName, toSafeCppString} = require('../Utils');
|
|
27
|
-
|
|
28
|
-
import type {
|
|
29
|
-
ExtendsPropsShape,
|
|
30
|
-
NamedShape,
|
|
31
|
-
PropTypeAnnotation,
|
|
32
|
-
SchemaType,
|
|
33
|
-
} from '../../CodegenSchema';
|
|
34
|
-
|
|
35
32
|
// File path -> contents
|
|
36
33
|
type FilesOutput = Map<string, string>;
|
|
37
34
|
type StructsMap = Map<string, string>;
|
|
@@ -55,13 +52,11 @@ const FileTemplate = ({
|
|
|
55
52
|
|
|
56
53
|
${imports}
|
|
57
54
|
|
|
58
|
-
namespace facebook {
|
|
59
|
-
namespace react {
|
|
55
|
+
namespace facebook::react {
|
|
60
56
|
|
|
61
57
|
${componentClasses}
|
|
62
58
|
|
|
63
|
-
} // namespace react
|
|
64
|
-
} // namespace facebook
|
|
59
|
+
} // namespace facebook::react
|
|
65
60
|
`;
|
|
66
61
|
|
|
67
62
|
const ClassTemplate = ({
|
|
@@ -711,6 +706,7 @@ module.exports = {
|
|
|
711
706
|
schema: SchemaType,
|
|
712
707
|
packageName?: string,
|
|
713
708
|
assumeNonnull: boolean = false,
|
|
709
|
+
headerPrefix?: string,
|
|
714
710
|
): FilesOutput {
|
|
715
711
|
const fileName = 'Props.h';
|
|
716
712
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
const _require = require('./JavaHelpers'),
|
|
14
|
+
getDelegateJavaClassName = _require.getDelegateJavaClassName,
|
|
14
15
|
getImports = _require.getImports,
|
|
15
|
-
toSafeJavaString = _require.toSafeJavaString,
|
|
16
16
|
getInterfaceJavaClassName = _require.getInterfaceJavaClassName,
|
|
17
|
-
|
|
17
|
+
toSafeJavaString = _require.toSafeJavaString;
|
|
18
18
|
|
|
19
19
|
// File path -> contents
|
|
20
20
|
|
|
@@ -167,6 +167,8 @@ function getCommandArgJavaType(param, index) {
|
|
|
167
167
|
return `args.getInt(${index})`;
|
|
168
168
|
case 'StringTypeAnnotation':
|
|
169
169
|
return `args.getString(${index})`;
|
|
170
|
+
case 'ArrayTypeAnnotation':
|
|
171
|
+
return `args.getArray(${index})`;
|
|
170
172
|
default:
|
|
171
173
|
typeAnnotation.type;
|
|
172
174
|
throw new Error(`Receieved invalid type: ${typeAnnotation.type}`);
|
|
@@ -241,7 +243,13 @@ function generateMethods(propsString, commandsString) {
|
|
|
241
243
|
.trimRight();
|
|
242
244
|
}
|
|
243
245
|
module.exports = {
|
|
244
|
-
generate(
|
|
246
|
+
generate(
|
|
247
|
+
libraryName,
|
|
248
|
+
schema,
|
|
249
|
+
packageName,
|
|
250
|
+
assumeNonnull = false,
|
|
251
|
+
headerPrefix,
|
|
252
|
+
) {
|
|
245
253
|
// TODO: This doesn't support custom package name yet.
|
|
246
254
|
const normalizedPackageName = 'com.facebook.react.viewmanagers';
|
|
247
255
|
const outputDir = `java/${normalizedPackageName.replace(/\./g, '/')}`;
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
import type {CommandParamTypeAnnotation} from '../../CodegenSchema';
|
|
13
|
-
|
|
14
13
|
import type {
|
|
15
|
-
NamedShape,
|
|
16
14
|
CommandTypeAnnotation,
|
|
17
15
|
ComponentShape,
|
|
16
|
+
NamedShape,
|
|
18
17
|
PropTypeAnnotation,
|
|
19
18
|
SchemaType,
|
|
20
19
|
} from '../../CodegenSchema';
|
|
20
|
+
|
|
21
21
|
const {
|
|
22
|
+
getDelegateJavaClassName,
|
|
22
23
|
getImports,
|
|
23
|
-
toSafeJavaString,
|
|
24
24
|
getInterfaceJavaClassName,
|
|
25
|
-
|
|
25
|
+
toSafeJavaString,
|
|
26
26
|
} = require('./JavaHelpers');
|
|
27
27
|
|
|
28
28
|
// File path -> contents
|
|
@@ -202,6 +202,8 @@ function getCommandArgJavaType(
|
|
|
202
202
|
return `args.getInt(${index})`;
|
|
203
203
|
case 'StringTypeAnnotation':
|
|
204
204
|
return `args.getString(${index})`;
|
|
205
|
+
case 'ArrayTypeAnnotation':
|
|
206
|
+
return `args.getArray(${index})`;
|
|
205
207
|
default:
|
|
206
208
|
(typeAnnotation.type: empty);
|
|
207
209
|
throw new Error(`Receieved invalid type: ${typeAnnotation.type}`);
|
|
@@ -295,6 +297,7 @@ module.exports = {
|
|
|
295
297
|
schema: SchemaType,
|
|
296
298
|
packageName?: string,
|
|
297
299
|
assumeNonnull: boolean = false,
|
|
300
|
+
headerPrefix?: string,
|
|
298
301
|
): FilesOutput {
|
|
299
302
|
// TODO: This doesn't support custom package name yet.
|
|
300
303
|
const normalizedPackageName = 'com.facebook.react.viewmanagers';
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
const _require = require('./JavaHelpers'),
|
|
14
14
|
getImports = _require.getImports,
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
getInterfaceJavaClassName = _require.getInterfaceJavaClassName,
|
|
16
|
+
toSafeJavaString = _require.toSafeJavaString;
|
|
17
17
|
|
|
18
18
|
// File path -> contents
|
|
19
19
|
|
|
@@ -145,6 +145,8 @@ function getCommandArgJavaType(param) {
|
|
|
145
145
|
return 'int';
|
|
146
146
|
case 'StringTypeAnnotation':
|
|
147
147
|
return 'String';
|
|
148
|
+
case 'ArrayTypeAnnotation':
|
|
149
|
+
return 'ReadableArray';
|
|
148
150
|
default:
|
|
149
151
|
typeAnnotation.type;
|
|
150
152
|
throw new Error('Receieved invalid typeAnnotation');
|
|
@@ -191,7 +193,13 @@ function getClassExtendString(component) {
|
|
|
191
193
|
return extendString;
|
|
192
194
|
}
|
|
193
195
|
module.exports = {
|
|
194
|
-
generate(
|
|
196
|
+
generate(
|
|
197
|
+
libraryName,
|
|
198
|
+
schema,
|
|
199
|
+
packageName,
|
|
200
|
+
assumeNonnull = false,
|
|
201
|
+
headerPrefix,
|
|
202
|
+
) {
|
|
195
203
|
// TODO: This doesn't support custom package name yet.
|
|
196
204
|
const normalizedPackageName = 'com.facebook.react.viewmanagers';
|
|
197
205
|
const outputDir = `java/${normalizedPackageName.replace(/\./g, '/')}`;
|
|
@@ -10,18 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
import type {CommandParamTypeAnnotation} from '../../CodegenSchema';
|
|
13
|
-
|
|
14
13
|
import type {
|
|
15
|
-
NamedShape,
|
|
16
14
|
CommandTypeAnnotation,
|
|
17
15
|
ComponentShape,
|
|
16
|
+
NamedShape,
|
|
18
17
|
PropTypeAnnotation,
|
|
19
18
|
SchemaType,
|
|
20
19
|
} from '../../CodegenSchema';
|
|
20
|
+
|
|
21
21
|
const {
|
|
22
22
|
getImports,
|
|
23
|
-
toSafeJavaString,
|
|
24
23
|
getInterfaceJavaClassName,
|
|
24
|
+
toSafeJavaString,
|
|
25
25
|
} = require('./JavaHelpers');
|
|
26
26
|
|
|
27
27
|
// File path -> contents
|
|
@@ -171,6 +171,8 @@ function getCommandArgJavaType(param: NamedShape<CommandParamTypeAnnotation>) {
|
|
|
171
171
|
return 'int';
|
|
172
172
|
case 'StringTypeAnnotation':
|
|
173
173
|
return 'String';
|
|
174
|
+
case 'ArrayTypeAnnotation':
|
|
175
|
+
return 'ReadableArray';
|
|
174
176
|
default:
|
|
175
177
|
(typeAnnotation.type: empty);
|
|
176
178
|
throw new Error('Receieved invalid typeAnnotation');
|
|
@@ -235,6 +237,7 @@ module.exports = {
|
|
|
235
237
|
schema: SchemaType,
|
|
236
238
|
packageName?: string,
|
|
237
239
|
assumeNonnull: boolean = false,
|
|
240
|
+
headerPrefix?: string,
|
|
238
241
|
): FilesOutput {
|
|
239
242
|
// TODO: This doesn't support custom package name yet.
|
|
240
243
|
const normalizedPackageName = 'com.facebook.react.viewmanagers';
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
13
|
import type {
|
|
14
|
-
|
|
15
|
-
NamedShape,
|
|
16
|
-
ObjectTypeAnnotation,
|
|
14
|
+
ArrayTypeAnnotation,
|
|
17
15
|
BooleanTypeAnnotation,
|
|
18
|
-
StringTypeAnnotation,
|
|
19
16
|
DoubleTypeAnnotation,
|
|
20
17
|
FloatTypeAnnotation,
|
|
21
18
|
Int32TypeAnnotation,
|
|
22
|
-
PropTypeAnnotation,
|
|
23
19
|
MixedTypeAnnotation,
|
|
24
|
-
|
|
20
|
+
NamedShape,
|
|
21
|
+
ObjectTypeAnnotation,
|
|
22
|
+
PropTypeAnnotation,
|
|
23
|
+
ReservedPropTypeAnnotation,
|
|
24
|
+
StringTypeAnnotation,
|
|
25
25
|
} from '../../../CodegenSchema';
|
|
26
26
|
|
|
27
27
|
const {capitalize} = require('../../Utils');
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
-
const PojoCollector = require('./PojoCollector');
|
|
14
13
|
const _require = require('../../Utils'),
|
|
15
14
|
capitalize = _require.capitalize;
|
|
15
|
+
const PojoCollector = require('./PojoCollector');
|
|
16
16
|
const _require2 = require('./serializePojo'),
|
|
17
17
|
serializePojo = _require2.serializePojo;
|
|
18
18
|
module.exports = {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
import type {SchemaType} from '../../../CodegenSchema';
|
|
14
14
|
|
|
15
|
-
const PojoCollector = require('./PojoCollector');
|
|
16
15
|
const {capitalize} = require('../../Utils');
|
|
16
|
+
const PojoCollector = require('./PojoCollector');
|
|
17
17
|
const {serializePojo} = require('./serializePojo');
|
|
18
18
|
|
|
19
19
|
type FilesOutput = Map<string, string>;
|
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
'use strict';
|
|
12
12
|
|
|
13
|
+
const _require = require('./CppHelpers'),
|
|
14
|
+
IncludeTemplate = _require.IncludeTemplate;
|
|
15
|
+
|
|
13
16
|
// File path -> contents
|
|
14
17
|
|
|
15
|
-
const FileTemplate = ({
|
|
18
|
+
const FileTemplate = ({componentNames, headerPrefix}) => `
|
|
16
19
|
/**
|
|
17
20
|
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
18
21
|
*
|
|
@@ -22,22 +25,29 @@ const FileTemplate = ({libraryName, componentNames}) => `
|
|
|
22
25
|
* ${'@'}generated by codegen project: GenerateShadowNodeCpp.js
|
|
23
26
|
*/
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
${IncludeTemplate({
|
|
29
|
+
headerPrefix,
|
|
30
|
+
file: 'ShadowNodes.h',
|
|
31
|
+
})}
|
|
26
32
|
|
|
27
|
-
namespace facebook {
|
|
28
|
-
namespace react {
|
|
33
|
+
namespace facebook::react {
|
|
29
34
|
|
|
30
35
|
${componentNames}
|
|
31
36
|
|
|
32
|
-
} // namespace react
|
|
33
|
-
} // namespace facebook
|
|
37
|
+
} // namespace facebook::react
|
|
34
38
|
`;
|
|
35
39
|
const ComponentTemplate = ({className}) =>
|
|
36
40
|
`
|
|
37
41
|
extern const char ${className}ComponentName[] = "${className}";
|
|
38
42
|
`.trim();
|
|
39
43
|
module.exports = {
|
|
40
|
-
generate(
|
|
44
|
+
generate(
|
|
45
|
+
libraryName,
|
|
46
|
+
schema,
|
|
47
|
+
packageName,
|
|
48
|
+
assumeNonnull = false,
|
|
49
|
+
headerPrefix,
|
|
50
|
+
) {
|
|
41
51
|
const fileName = 'ShadowNodes.cpp';
|
|
42
52
|
const componentNames = Object.keys(schema.modules)
|
|
43
53
|
.map(moduleName => {
|
|
@@ -66,7 +76,8 @@ module.exports = {
|
|
|
66
76
|
.join('\n');
|
|
67
77
|
const replacedTemplate = FileTemplate({
|
|
68
78
|
componentNames,
|
|
69
|
-
|
|
79
|
+
headerPrefix:
|
|
80
|
+
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
|
|
70
81
|
});
|
|
71
82
|
return new Map([[fileName, replacedTemplate]]);
|
|
72
83
|
},
|