@react-native-windows/codegen 0.67.1 → 0.68.0
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 +52 -18
- package/bin.js +0 -0
- package/lib-commonjs/Cli.js +14 -18
- package/lib-commonjs/Cli.js.map +1 -1
- package/lib-commonjs/generators/ObjectTypes.js +2 -2
- package/lib-commonjs/generators/ObjectTypes.js.map +1 -1
- package/lib-commonjs/generators/ParamTypes.js +4 -4
- package/lib-commonjs/generators/ParamTypes.js.map +1 -1
- package/lib-commonjs/generators/ReturnTypes.js +2 -2
- package/lib-commonjs/generators/ReturnTypes.js.map +1 -1
- package/lib-commonjs/generators/ValidateConstants.js +1 -1
- package/lib-commonjs/generators/ValidateConstants.js.map +1 -1
- package/lib-commonjs/generators/ValidateMethods.js +4 -4
- package/lib-commonjs/generators/ValidateMethods.js.map +1 -1
- package/package.json +9 -8
- package/src/Cli.ts +20 -18
- package/src/generators/ObjectTypes.ts +2 -2
- package/src/generators/ParamTypes.ts +4 -4
- package/src/generators/ReturnTypes.ts +2 -2
- package/src/generators/ValidateConstants.ts +1 -1
- package/src/generators/ValidateMethods.ts +4 -4
- package/CHANGELOG.json +0 -891
package/src/Cli.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import yargs from 'yargs';
|
|
9
9
|
import path from 'path';
|
|
10
|
-
import fs from 'fs';
|
|
10
|
+
import fs from '@react-native-windows/fs';
|
|
11
11
|
import globby from 'globby';
|
|
12
12
|
import {createNM2Generator} from './generators/GenerateNM2';
|
|
13
13
|
// @ts-ignore
|
|
@@ -98,9 +98,11 @@ function checkFilesForChanges(
|
|
|
98
98
|
|
|
99
99
|
const allExistingFiles = globby
|
|
100
100
|
.sync(`${outputDir}/**`)
|
|
101
|
-
.map(_ => path.normalize(_))
|
|
101
|
+
.map((_) => path.normalize(_))
|
|
102
|
+
.sort();
|
|
103
|
+
const allGeneratedFiles = [...map.keys()]
|
|
104
|
+
.map((_) => path.normalize(_))
|
|
102
105
|
.sort();
|
|
103
|
-
const allGeneratedFiles = [...map.keys()].map(_ => path.normalize(_)).sort();
|
|
104
106
|
|
|
105
107
|
if (
|
|
106
108
|
allExistingFiles.length !== allGeneratedFiles.length ||
|
|
@@ -130,7 +132,7 @@ function writeMapToFiles(map: Map<string, string>, outputDir: string) {
|
|
|
130
132
|
|
|
131
133
|
// This ensures that we delete any generated files from modules that have been deleted
|
|
132
134
|
const allExistingFiles = globby.sync(`${outputDir}/**`);
|
|
133
|
-
allExistingFiles.forEach(existingFile => {
|
|
135
|
+
allExistingFiles.forEach((existingFile) => {
|
|
134
136
|
if (!map.has(path.normalize(existingFile))) {
|
|
135
137
|
fs.unlinkSync(existingFile);
|
|
136
138
|
}
|
|
@@ -207,18 +209,18 @@ function generate(
|
|
|
207
209
|
);
|
|
208
210
|
|
|
209
211
|
const generateNM2 = createNM2Generator({namespace: argv.namespace});
|
|
210
|
-
const generatorPropsH =
|
|
211
|
-
.generate;
|
|
212
|
-
const generatorPropsCPP =
|
|
213
|
-
.generate;
|
|
214
|
-
const generatorShadowNodeH =
|
|
215
|
-
.generate;
|
|
216
|
-
const generatorShadowNodeCPP =
|
|
217
|
-
.generate;
|
|
218
|
-
const generatorComponentDescriptorH =
|
|
219
|
-
.generate;
|
|
220
|
-
const generatorEventEmitterH =
|
|
221
|
-
.generate;
|
|
212
|
+
const generatorPropsH =
|
|
213
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GeneratePropsH').generate;
|
|
214
|
+
const generatorPropsCPP =
|
|
215
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GeneratePropsCPP').generate;
|
|
216
|
+
const generatorShadowNodeH =
|
|
217
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GenerateShadowNodeH').generate;
|
|
218
|
+
const generatorShadowNodeCPP =
|
|
219
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GenerateShadowNodeCPP').generate;
|
|
220
|
+
const generatorComponentDescriptorH =
|
|
221
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GenerateComponentDescriptorH').generate;
|
|
222
|
+
const generatorEventEmitterH =
|
|
223
|
+
require('react-native-tscodegen/lib/rncodegen/src/generators/components/GenerateEventEmitterH').generate;
|
|
222
224
|
|
|
223
225
|
normalizeFileMap(
|
|
224
226
|
generateNM2(libraryName, schema, moduleSpecName),
|
|
@@ -228,7 +230,7 @@ function generate(
|
|
|
228
230
|
|
|
229
231
|
if (
|
|
230
232
|
Object.keys(schema.modules).some(
|
|
231
|
-
moduleName => schema.modules[moduleName].type === 'Component',
|
|
233
|
+
(moduleName) => schema.modules[moduleName].type === 'Component',
|
|
232
234
|
)
|
|
233
235
|
) {
|
|
234
236
|
const componentGenerators = [
|
|
@@ -240,7 +242,7 @@ function generate(
|
|
|
240
242
|
generatorEventEmitterH,
|
|
241
243
|
];
|
|
242
244
|
|
|
243
|
-
componentGenerators.forEach(generator => {
|
|
245
|
+
componentGenerators.forEach((generator) => {
|
|
244
246
|
const generated: Map<string, string> = generator(
|
|
245
247
|
libraryName,
|
|
246
248
|
schema,
|
|
@@ -39,10 +39,10 @@ export function translateField(
|
|
|
39
39
|
`${baseAliasName}_element`,
|
|
40
40
|
)}>`;
|
|
41
41
|
} else {
|
|
42
|
-
return
|
|
42
|
+
return `::React::JSValueArray`;
|
|
43
43
|
}
|
|
44
44
|
case 'GenericObjectTypeAnnotation':
|
|
45
|
-
return 'React::JSValue';
|
|
45
|
+
return '::React::JSValue';
|
|
46
46
|
case 'ObjectTypeAnnotation':
|
|
47
47
|
return getAnonymousAliasCppName(aliases, baseAliasName, type);
|
|
48
48
|
case 'ReservedTypeAnnotation': {
|
|
@@ -102,10 +102,10 @@ function translateParam(
|
|
|
102
102
|
)}> const &`;
|
|
103
103
|
}
|
|
104
104
|
} else {
|
|
105
|
-
return decorateType('React::JSValueArray', target);
|
|
105
|
+
return decorateType('::React::JSValueArray', target);
|
|
106
106
|
}
|
|
107
107
|
case 'GenericObjectTypeAnnotation':
|
|
108
|
-
return decorateType('React::JSValue', target);
|
|
108
|
+
return decorateType('::React::JSValue', target);
|
|
109
109
|
case 'ObjectTypeAnnotation':
|
|
110
110
|
return decorateType(
|
|
111
111
|
getAnonymousAliasCppName(aliases, baseAliasName, param),
|
|
@@ -194,7 +194,7 @@ export function translateSpecArgs(
|
|
|
194
194
|
aliases: AliasMap,
|
|
195
195
|
baseAliasName: string,
|
|
196
196
|
) {
|
|
197
|
-
return params.map(param => {
|
|
197
|
+
return params.map((param) => {
|
|
198
198
|
const translatedParam = translateSpecFunctionParam(
|
|
199
199
|
param,
|
|
200
200
|
aliases,
|
|
@@ -209,7 +209,7 @@ export function translateArgs(
|
|
|
209
209
|
aliases: AliasMap,
|
|
210
210
|
baseAliasName: string,
|
|
211
211
|
) {
|
|
212
|
-
return params.map(param => {
|
|
212
|
+
return params.map((param) => {
|
|
213
213
|
const translatedParam = translateFunctionParam(
|
|
214
214
|
param,
|
|
215
215
|
aliases,
|
|
@@ -45,10 +45,10 @@ function translateReturnType(
|
|
|
45
45
|
`${baseAliasName}_element`,
|
|
46
46
|
)}>`;
|
|
47
47
|
} else {
|
|
48
|
-
return 'React::JSValueArray';
|
|
48
|
+
return '::React::JSValueArray';
|
|
49
49
|
}
|
|
50
50
|
case 'GenericObjectTypeAnnotation':
|
|
51
|
-
return 'React::JSValue';
|
|
51
|
+
return '::React::JSValue';
|
|
52
52
|
case 'ObjectTypeAnnotation':
|
|
53
53
|
return getAnonymousAliasCppName(aliases, baseAliasName, type);
|
|
54
54
|
case 'ReservedTypeAnnotation': {
|
|
@@ -14,7 +14,7 @@ export function generateValidateConstants(
|
|
|
14
14
|
aliases: AliasMap,
|
|
15
15
|
): [string, string] | undefined {
|
|
16
16
|
const candidates = nativeModule.spec.properties.filter(
|
|
17
|
-
prop => prop.name === 'getConstants',
|
|
17
|
+
(prop) => prop.name === 'getConstants',
|
|
18
18
|
);
|
|
19
19
|
if (candidates.length === 0) {
|
|
20
20
|
return undefined;
|
|
@@ -35,7 +35,7 @@ function getPossibleMethodSignatures(
|
|
|
35
35
|
const args = translateArgs(funcType.params, aliases, baseAliasName);
|
|
36
36
|
if (isMethodReturnPromise(funcType)) {
|
|
37
37
|
// TODO: type of the promise could be provided in the future
|
|
38
|
-
args.push('React::ReactPromise
|
|
38
|
+
args.push('::React::ReactPromise<::React::JSValue> &&result');
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
// TODO: be much more exhastive on the possible method signatures that can be used..
|
|
@@ -65,7 +65,7 @@ function translatePossibleMethodSignatures(
|
|
|
65
65
|
baseAliasName: string,
|
|
66
66
|
): string {
|
|
67
67
|
return getPossibleMethodSignatures(prop, funcType, aliases, baseAliasName)
|
|
68
|
-
.map(sig => `" ${sig}\\n"`)
|
|
68
|
+
.map((sig) => `" ${sig}\\n"`)
|
|
69
69
|
.join('\n ');
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -76,7 +76,7 @@ function renderProperties(
|
|
|
76
76
|
): string {
|
|
77
77
|
// TODO: generate code for constants
|
|
78
78
|
return properties
|
|
79
|
-
.filter(prop => prop.name !== 'getConstants')
|
|
79
|
+
.filter((prop) => prop.name !== 'getConstants')
|
|
80
80
|
.map((prop, index) => {
|
|
81
81
|
// TODO: prop.optional === true
|
|
82
82
|
// TODO: prop.typeAnnotation.type === 'NullableTypeAnnotation'
|
|
@@ -100,7 +100,7 @@ function renderProperties(
|
|
|
100
100
|
|
|
101
101
|
if (isMethodReturnPromise(funcType)) {
|
|
102
102
|
// TODO: type of the promise could be provided in the future
|
|
103
|
-
traversedArgs.push('Promise
|
|
103
|
+
traversedArgs.push('Promise<::React::JSValue>');
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
if (tuple) {
|