Socket
Socket
Sign inDemoInstall

@react-native/codegen

Package Overview
Dependencies
Maintainers
11
Versions
389
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@react-native/codegen - npm Package Compare versions

Comparing version 0.74.0-nightly-20231218-27f38f6f0 to 0.74.0-nightly-20231220-dae4a11e9

67

lib/cli/combine/combine-js-to-schema-cli.js

@@ -14,12 +14,63 @@ /**

function _toArray(arr) {
return (
_arrayWithHoles(arr) ||
_iterableToArray(arr) ||
_unsupportedIterableToArray(arr) ||
_nonIterableRest()
);
}
function _nonIterableRest() {
throw new TypeError(
'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.',
);
}
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === 'string') return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === 'Object' && o.constructor) n = o.constructor.name;
if (n === 'Map' || n === 'Set') return Array.from(o);
if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _iterableToArray(iter) {
if (
(typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) ||
iter['@@iterator'] != null
)
return Array.from(iter);
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
const _require = require('./combine-js-to-schema'),
combineSchemasInFileListAndWriteToFile =
_require.combineSchemasInFileListAndWriteToFile;
const _require2 = require('./combine-utils'),
parseArgs = _require2.parseArgs;
const parsedArgs = parseArgs(process.argv);
const platform = parsedArgs.platform,
outfile = parsedArgs.outfile,
fileList = parsedArgs.fileList,
exclude = parsedArgs.exclude;
combineSchemasInFileListAndWriteToFile(fileList, platform, outfile, exclude);
const yargs = require('yargs');
const argv = yargs
.option('p', {
alias: 'platform',
})
.option('e', {
alias: 'exclude',
})
.parseSync();
const _argv$_ = _toArray(argv._),
outfile = _argv$_[0],
fileList = _argv$_.slice(1);
const platform = argv.platform;
const exclude = argv.exclude;
const excludeRegExp =
exclude != null && exclude !== '' ? new RegExp(exclude) : null;
combineSchemasInFileListAndWriteToFile(
fileList,
platform != null ? platform.toLowerCase() : platform,
outfile,
excludeRegExp,
);

39

lib/cli/combine/combine-schemas-cli.js

@@ -15,23 +15,22 @@ /**

const fs = require('fs');
const util = require('util');
const _util$parseArgs = util.parseArgs({
options: {
platform: {
type: 'string',
},
output: {
type: 'string',
},
['schema-query']: {
type: 'string',
},
},
}),
args = _util$parseArgs.values;
if (!['iOS', 'android'].includes(args.platform)) {
throw new Error(`Invalid platform ${args.platform}`);
const yargs = require('yargs');
const argv = yargs
.option('p', {
alias: 'platform',
type: 'string',
demandOption: true,
})
.option('o', {
alias: 'output',
})
.option('s', {
alias: 'schema-query',
})
.parseSync();
const platform = argv.platform.toLowerCase();
const output = argv.output;
const schemaQuery = argv.s;
if (!['ios', 'android'].includes(platform)) {
throw new Error(`Invalid platform ${platform}`);
}
const platform = args.platform;
const output = args.output;
const schemaQuery = args['schema-query'];
if (!schemaQuery.startsWith('@')) {

@@ -38,0 +37,0 @@ throw new Error(

@@ -14,70 +14,3 @@ /**

function _toArray(arr) {
return (
_arrayWithHoles(arr) ||
_iterableToArray(arr) ||
_unsupportedIterableToArray(arr) ||
_nonIterableRest()
);
}
function _nonIterableRest() {
throw new TypeError(
'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.',
);
}
function _unsupportedIterableToArray(o, minLen) {
if (!o) return;
if (typeof o === 'string') return _arrayLikeToArray(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === 'Object' && o.constructor) n = o.constructor.name;
if (n === 'Map' || n === 'Set') return Array.from(o);
if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _iterableToArray(iter) {
if (
(typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) ||
iter['@@iterator'] != null
)
return Array.from(iter);
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
const path = require('path');
const util = require('util');
function parseArgs(args) {
const parsedArgs = util.parseArgs({
args: args.slice(2),
options: {
platform: {
short: 'p',
type: 'string',
},
exclude: {
short: 'e',
type: 'string',
},
},
allowPositionals: true,
});
const _parsedArgs$values = parsedArgs.values,
platform = _parsedArgs$values.platform,
exclude = _parsedArgs$values.exclude,
files = parsedArgs.positionals;
const _files = _toArray(files),
outfile = _files[0],
fileList = _files.slice(1);
return {
platform: platform !== null && platform !== void 0 ? platform : null,
outfile,
fileList,
exclude: exclude != null && exclude !== '' ? new RegExp(exclude) : null,
};
}

@@ -123,4 +56,3 @@ /**

module.exports = {
parseArgs,
filterJSFile,
};

@@ -15,3 +15,3 @@ /**

const FileTemplate = ({componentDescriptors, libraryName}) => `
const FileTemplate = ({componentDescriptors, headerPrefix}) => `
/**

@@ -28,3 +28,3 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

#include <react/renderer/components/${libraryName}/ShadowNodes.h>
#include <${headerPrefix}ShadowNodes.h>
#include <react/renderer/core/ConcreteComponentDescriptor.h>

@@ -43,3 +43,9 @@

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'ComponentDescriptors.h';

@@ -72,3 +78,4 @@ const componentDescriptors = Object.keys(schema.modules)

componentDescriptors,
libraryName,
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -75,0 +82,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -297,3 +297,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'RCTComponentViewHelpers.h';

@@ -300,0 +306,0 @@ const componentContent = Object.keys(schema.modules)

@@ -20,3 +20,3 @@ /**

const FileTemplate = ({events, libraryName, extraIncludes}) => `
const FileTemplate = ({events, extraIncludes, headerPrefix}) => `
/**

@@ -31,3 +31,3 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

#include <react/renderer/components/${libraryName}/EventEmitters.h>
#include <${headerPrefix}EventEmitters.h>
${[...extraIncludes].join('\n')}

@@ -356,3 +356,9 @@

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const moduleComponents = Object.keys(schema.modules)

@@ -384,5 +390,6 @@ .map(moduleName => {

const replacedTemplate = FileTemplate({
libraryName,
events: componentEmitters,
extraIncludes,
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -389,0 +396,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -230,3 +230,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const moduleComponents = Object.keys(schema.modules)

@@ -233,0 +239,0 @@ .map(moduleName => {

@@ -19,3 +19,3 @@ /**

const FileTemplate = ({libraryName, imports, componentClasses}) => `
const FileTemplate = ({imports, componentClasses, headerPrefix}) => `
/**

@@ -30,3 +30,3 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

#include <react/renderer/components/${libraryName}/Props.h>
#include <${headerPrefix}Props.h>
${imports}

@@ -82,3 +82,9 @@

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'Props.cpp';

@@ -122,4 +128,5 @@ const allImports = new Set([

componentClasses: componentProps,
libraryName,
imports: Array.from(allImports).sort().join('\n').trim(),
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -126,0 +133,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -553,3 +553,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'Props.h';

@@ -556,0 +562,0 @@ const allImports = new Set();

@@ -246,3 +246,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
// TODO: This doesn't support custom package name yet.

@@ -249,0 +255,0 @@ const normalizedPackageName = 'com.facebook.react.viewmanagers';

@@ -196,3 +196,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
// TODO: This doesn't support custom package name yet.

@@ -199,0 +205,0 @@ const normalizedPackageName = 'com.facebook.react.viewmanagers';

@@ -15,3 +15,3 @@ /**

const FileTemplate = ({libraryName, componentNames}) => `
const FileTemplate = ({componentNames, headerPrefix}) => `
/**

@@ -26,3 +26,3 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

#include <react/renderer/components/${libraryName}/ShadowNodes.h>
#include <${headerPrefix}ShadowNodes.h>

@@ -40,3 +40,9 @@ namespace facebook::react {

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'ShadowNodes.cpp';

@@ -70,3 +76,4 @@ const componentNames = Object.keys(schema.modules)

componentNames,
libraryName,
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -73,0 +80,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -15,3 +15,3 @@ /**

const FileTemplate = ({imports, libraryName, componentClasses}) => `
const FileTemplate = ({componentClasses, headerPrefix}) => `
/**

@@ -28,4 +28,5 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

${imports}#include <react/renderer/components/${libraryName}/Props.h>
#include <react/renderer/components/${libraryName}/States.h>
#include <${headerPrefix}EventEmitters.h>
#include <${headerPrefix}Props.h>
#include <${headerPrefix}States.h>
#include <react/renderer/components/view/ConcreteViewShadowNode.h>

@@ -53,3 +54,9 @@ #include <jsi/jsi.h>

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'ShadowNodes.h';

@@ -84,7 +91,6 @@ const moduleResults = Object.keys(schema.modules)

.join('\n\n');
const eventEmitterImport = `#include <react/renderer/components/${libraryName}/EventEmitters.h>\n`;
const replacedTemplate = FileTemplate({
componentClasses: moduleResults,
libraryName,
imports: eventEmitterImport,
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -91,0 +97,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -15,3 +15,3 @@ /**

const FileTemplate = ({libraryName, stateClasses}) => `
const FileTemplate = ({stateClasses, headerPrefix}) => `
/**

@@ -25,3 +25,3 @@ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).

*/
#include <react/renderer/components/${libraryName}/States.h>
#include <${headerPrefix}States.h>

@@ -36,3 +36,9 @@ namespace facebook::react {

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'States.cpp';

@@ -66,4 +72,5 @@ const stateClasses = Object.keys(schema.modules)

const replacedTemplate = FileTemplate({
libraryName,
stateClasses,
headerPrefix:
headerPrefix !== null && headerPrefix !== void 0 ? headerPrefix : '',
});

@@ -70,0 +77,0 @@ return new Map([[fileName, replacedTemplate]]);

@@ -57,3 +57,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'States.h';

@@ -60,0 +66,0 @@ const stateClasses = Object.keys(schema.modules)

@@ -128,3 +128,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const fileName = 'Tests.cpp';

@@ -131,0 +137,0 @@ const allImports = new Set([

@@ -258,3 +258,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const nativeModules = getModules(schema);

@@ -261,0 +267,0 @@ const modules = Object.keys(nativeModules)

@@ -605,3 +605,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const nativeModules = getModules(schema);

@@ -608,0 +614,0 @@ const modules = Object.keys(nativeModules).flatMap(hasteModuleName => {

@@ -471,3 +471,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const files = new Map();

@@ -474,0 +480,0 @@ const nativeModules = getModules(schema);

@@ -416,3 +416,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const nativeModules = getModules(schema);

@@ -419,0 +425,0 @@ const modules = Object.keys(nativeModules)

@@ -104,3 +104,9 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull = false) {
generate(
libraryName,
schema,
packageName,
assumeNonnull = false,
headerPrefix,
) {
const nativeModules = getModules(schema);

@@ -107,0 +113,0 @@ const modules = Object.keys(nativeModules)

@@ -99,3 +99,3 @@ /**

module.exports = {
generate(libraryName, schema, packageName, assumeNonnull) {
generate(libraryName, schema, packageName, assumeNonnull, headerPrefix) {
const nativeModules = getModules(schema);

@@ -102,0 +102,0 @@ const moduleDeclarations = [];

@@ -169,10 +169,24 @@ /**

generate(
{libraryName, schema, outputDirectory, packageName, assumeNonnull},
{
libraryName,
schema,
outputDirectory,
packageName,
assumeNonnull,
useLocalIncludePaths,
},
{generators, test},
) {
schemaValidator.validate(schema);
const defaultHeaderPrefix = 'react/renderer/components';
const headerPrefix =
useLocalIncludePaths === true
? ''
: `${defaultHeaderPrefix}/${libraryName}/`;
function composePath(intermediate) {
return path.join(outputDirectory, intermediate, libraryName);
}
const componentIOSOutput = composePath('react/renderer/components/');
const componentIOSOutput = composePath(
useLocalIncludePaths === true ? '' : defaultHeaderPrefix,
);
const modulesIOSOutput = composePath('./');

@@ -195,11 +209,15 @@ const outputFoldersForGenerators = {

for (const generator of LIBRARY_GENERATORS[name]) {
generator(libraryName, schema, packageName, assumeNonnull).forEach(
(contents, fileName) => {
generatedFiles.push({
name: fileName,
content: contents,
outputDir: outputFoldersForGenerators[name],
});
},
);
generator(
libraryName,
schema,
packageName,
assumeNonnull,
headerPrefix,
).forEach((contents, fileName) => {
generatedFiles.push({
name: fileName,
content: contents,
outputDir: outputFoldersForGenerators[name],
});
});
}

@@ -206,0 +224,0 @@ }

{
"name": "@react-native/codegen",
"version": "0.74.0-nightly-20231218-27f38f6f0",
"version": "0.74.0-nightly-20231220-dae4a11e9",
"description": "Code generation tools for React Native",

@@ -34,3 +34,3 @@ "license": "MIT",

"glob": "^7.1.1",
"hermes-parser": "0.18.0",
"hermes-parser": "0.18.2",
"invariant": "^2.2.4",

@@ -53,6 +53,7 @@ "jscodeshift": "^0.14.0",

"chalk": "^4.0.0",
"hermes-estree": "0.18.0",
"hermes-estree": "0.18.2",
"micromatch": "^4.0.4",
"prettier": "2.8.8",
"rimraf": "^3.0.2"
"rimraf": "^3.0.2",
"yargs": "^17.6.2"
},

@@ -59,0 +60,0 @@ "peerDependencies": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc